@Scriptwisser: Safari soll automatisch Tabs aktualisieren

Dieses Thema im Forum "Software" wurde erstellt von Rotweinfreund, 25. November 2003.

  1. Rotweinfreund

    Rotweinfreund + Jevers Liebhaber

    Wer weiß eine Lösung oder hat eine Idee, wie Safari automatisch geöffnete Seiten (Tabs) in definierten Zeitintervallen aktualisieren könnte?

    Gruß R.
     
  2. Rotweinfreund

    Rotweinfreund + Jevers Liebhaber

    .... gleich verschwindet es nach Seite 2
     
  3. Macci

    Macci ausgewandert.

  4. Rotweinfreund

    Rotweinfreund + Jevers Liebhaber

    .... war schon wieder auf Seite 3 gerutscht :))
     
  5. Macci

    Macci ausgewandert.

    tja, wenns keiner weiß ...

    ;( ;( ;(
     
  6. shooterko

    shooterko New Member

    Ich hatte gerade etwas Zeit, mal wieder meine Applescript-Kenntnisse aufzufrischen:
    Folgendes in den SkriptEditor kopieren, speichern als Programm mit der Option 'Nicht automatisch beeenden'

    Programm starten.

    Viel Spaß,
    ist zwar noch etwas holperig, aber auf die Schnelle ;-)
    :sabber: :sabber: :sabber:

    Ach so, es gehen ja auch Anhänge :tongue:

    Keine Panik! Ihr könnt es Euch ja erst mal im Skripteditor anschauen, bevor ihr es startet

    CU
    ShooTerKo
     
  7. Macci

    Macci ausgewandert.

    ist ja ne richtig aufregende Sache geworden...sogar mit Einstelloption. Aber was haben die Hilfsmittel in den Systemeinstellungen damit zu tun, und was bedeuten die vielen window-Befehle darin (resize und so) ? Geht das nicht einfacher über die Abfrage der Online-Zeit und den Befehl von Safari Seite neu laden?

    Ich frage nur aus Neugier, nicht als Kritiker!

    Und nochwas: habe in der Firma 10.2.8, da läufts leider nicht, genau da bräuchte ich es aber... :wink:
     
  8. shooterko

    shooterko New Member

    Die Systemeinstellungen "Zugriff für Hilfsgeräte aktivieren" aktivieren die Möglichkeit, per Applescript auf das User Interface von Applikationen/Prozessen zuzugreifen. Das macht das Script, indem es einen Klick auf die einzelnen Tabs simuliert.
    Damit das Script das machen kann, muß das Safari-Fenster sichtbar sein, da sonst nichts Klickbares auf dem Bildschirm ist. Also: Wenn es not visible ist, mache es visible, wenn es minimized ist, deminimize es.
    Dann zähle die Radiobuttons des Fensters (die einzelnen Tabs werden programmintern als Radiobuttons geführt :crazy:), durchlaufe sie und merke dir das zur Zeit aktive Fenster.
    Klicke jedes Tab einmal an, hole dir die URL und schicke diese URL per Javascript-Refresh wieder an das Fenster. Der jetzige Inhalt wird dadurch wieder geladen. Dann weiter zum nächsten Tab. Wenn alle Tabs durch sind, aktiviere den Tab, der bei Programmstart aktiv war.

    Diese Funktion wird im idle-Handler alle x Sekunden aufgerufen. Der return-Wert dieses Handlers gibt an, wann idle das nächste Mal ausgeführt werden soll.

    Das Problem war, das die Tabs nicht direkt per Applescript zugänglich sind, sondern nur das komplette Fenster :angry: . Mit einem einfachen Reload hätte man also nur jeweils den aktuellen Tab aktualisiert.
    In das Context-Menu der Tableiste ("Alle Tabs neu laden") bin ich per Script gar nicht gekommen, wäre natürlich die einfachste Lösung gewesen.

    Wenn jemand Interesse am GUI Scripting hat:
    http://www.apple.com/applescript/uiscripting/
    und ein supercooles Tool :cool::
    http://www.apple.com/applescript/uiscripting/downloads/uiinspector.dmg

    Ich glaube, das diese Möglichkeiten erst bei Panther dazu kam, glaube ich. Man braucht die SystemEvents und die Möglichkeit, den GUI-Zugriff zu aktivieren.

    Puh, ich glaube, das war mein längstes Posting!

    Gruß,
    ShooTerKo
     
  9. Macci

    Macci ausgewandert.

    Aber schön zu lesen ! Und es hinterlässt bei mir zumindest den Eindruck, etwas verstanden zu haben :wink:
    Aber warum Apple den Safari nicht voll scriptfähig macht, begreifen sie wohl selbst nicht...

    Danke !
     
  10. Rotweinfreund

    Rotweinfreund + Jevers Liebhaber

    Dank zuerst an shooterko, dass er unser Betteln erhört hat. :D
    Das Script ist geladen, Zugriff für Hilfsgeräte aktiviert und wurde gestartet.
    Allerdings erhielt ich zweimal folgende Meldung:
    NSReceiverEvaluationscriptError: 4
    In den Scripteditor gucke ich (bisher) wie ein Schwein ins Uhrwerk.
    Da die Automatisierung (Klick auf Tabs) wohl permanet abgefragt wird, sind die Seiten ---so mein Eindruck-- permanent am Aktualisieren.
    Bei meiner DL-Rate von 128kbps also praktisch nicht lesbar.
    Der Knackpunkt sind die zu definierenden Zeiten für zu definierende Tabs.

    Na, schaunmerma!

    Gruß R.
     
  11. shooterko

    shooterko New Member

    Mmmh, ich bekomme diesen Fehler auch, aber nur, wenn kein Fenster in Safari geöffnet ist...

    Also:
    Öffne das Skript im Skripteditor und ersetze

    -----------------------
    on idle
    -- if saved with the "stay open" option, refresh every x seconds
    refreshAll()
    return x
    end idle
    -----------------------

    durch

    -----------------------
    on idle
    -- if saved with the "stay open" option, refresh every x seconds

    try
    refreshAll()
    end try
    return x
    end idle
    -----------------------

    Die try / end try Funktion ist dafür da, um Fehler abzufangen. In unserem Fall: Wenn ein Fehler auftritt, mache nichts.

    Wenn du möchtest, daß dann etwas passieren soll, kannst du auch sowas schreiben:

    try
    refreshAll()
    on error err
    display dialog "Ein Fehler ist aufgetreten:" & return & err as text
    end try

    CU
    ShooTerKo
     
  12. Rotweinfreund

    Rotweinfreund + Jevers Liebhaber

    Hi shooterko,
    habe es so gemacht wie du geraten.
    on idle
    -- if saved with the "stay open" option, refresh every x seconds

    Die x seconds habe ich mal auf 180 gesetzt oder muß das x im Script bleiben? Allerdings müßte ich z.B. wenn ich antworte, das Skript beenden, weil ich nicht sooo schnell tippen kann :), gibt es eine andere Stop-Funktion außer, ich lasse das Script im Editorfenster laufen?


    Gruß R. *schonetwasglücklicher*
     
  13. Rotweinfreund

    Rotweinfreund + Jevers Liebhaber

    ....merke gerade, dass das nicht funktioniert, da das Script gesichert und geschlossen werden muß.
    *aha*
     
  14. SRALPH

    SRALPH New Member

    und läuft es jetzt ohne prob's bei dir und unter welchem x?

    RALPH
     
  15. Rotweinfreund

    Rotweinfreund + Jevers Liebhaber

    .... so man eine geschickte Wahl des Zeit-Intervalls vornimmt (abhängig von Anzahl der Tabs und der Verbindungsgeschw.) ist es gut zu gebrauchen.
    OS 10.3.2
     
  16. Chriss

    Chriss New Member

    gibts da nach 2 Jahren inzwischen was neues - womöglich sogar tigeradäquat ... ;-) ?
    Danke !
     

Diese Seite empfehlen