JavaScript Alle (!) Tabs & Fenster des aktiven Browsers (!) auflisten - ?

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.016
Moin.

Ich möchte nicht gern das Problem das dahintersteht hier als Frage einstellen. Aber schlussendlich steht es unvermeidlich in der folgenden Beschreibung einer möglichen Lösung. Kann damit also gut sein, dass ich ein »völlig falscher Plan« aufs Auge bekomme.

Mein Denkansatz zur Lösung lautet, in einem wartenden Tab (oder Kiosk-Fenster) zu überprüfen wenn der Webseitenbesuch zu Ende ist (ergo in der Hoffnung, dass jener Tab, bzw. sämtliche seiner Sorte, geschlossen wird) um dann eine Nachfrage an den Anwender zu richten.
Dabei mag JS in einer Timer-Schleife alle Sekunde oder zwei die, meint: sämtliche, offenen Tabs & Fenster abklappern ob keines mehr mit einem bestimmten Titel (oder evtl. einer URL?) da ist [jenes hat diesen Tab/Fenster mit JS erst aufgerufen]. Ist dem so unternimmt JS weitere Maßnahmen.

Geht so was? Oder muss die zuerst aufgerufene Seite »etwas Anderes als JS« in Gang setzen? (Jenes In-Gang-Setzen soll nur quasi ein Einzeiler sein um den jene aufgerufene Seite leicht zu ergänzen ist ohne mehr dort tun zu müssen.)

CN8
 
Wäre mir neu dass Javascript tabübergreifend funktioniert - das wäre sicherheitstechnisch ziemlich bedenklich.
Ausserdem ist, wenn alle Tabs geschlossen sind, auch der Timer weg und deine Schleife oder Abfrage wird so oder so nicht aufgerufen.

Wenn müsstest die Lösung auf Stufe Browser machen (z.B. mit einem Addon) - aber selbst da ist es fraglich ob das dann tabübergreifend klappen wird.
 
Tab-übergreifend sowieso nicht. Das sind getrennte Prozesse. Alles andere wäre grob fahrlässig.
Aber ein Add-On kannst dir programmieren, das kann das dann auch.
 
cumulonimbus8 schrieb:
Mein Denkansatz zur Lösung lautet, in einem wartenden Tab (oder Kiosk-Fenster) zu überprüfen wenn der Webseitenbesuch zu Ende ist (ergo in der Hoffnung, dass jener Tab, bzw. sämtliche seiner Sorte, geschlossen wird) um dann eine Nachfrage an den Anwender zu richten.
Man könnte doch Cookies dafür nutzen, welche doch Tabübergreifend einsehbar sind?

Jeder Tab hat einen Counter, der von seinem eigenen Tab pro Sekunde einmal hochgezählt wird.
Nun kontrolliert man lediglich ob der Counter von den anderen Tabs wie erwartet hochgezählt wird.
Falls das nicht der Fall ist, wurde der Tab offensichtlich geschlossen.

Funktioniert natürlich nur, wenn du nur eigens produzierte Tabs kontrollieren möchtest ;)
 
Tabübergreifend funktioniert JS nicht... schon aus Sicherheitsgründen. Was ich mir als Lösung vorstellen könnte wenn alle Tabs Seiten von der selben Domain sind wäre eine Synchronisation über einen Cookie in dem man mitzählt wie viele Tabs noch offen sind. Das muss dann halt über den OnLoad und OnClose-Event der Tabs laufen und wenn der letzte Tab sich schließen will kommt die Nachfrage. Dürfte aber trotzdem ein recht wackliger Konstrukt werden...
 
Du kannst auch den Session- oder Local-Storage nutzen, statt Cookies. Auf jeder Seite muss dieser OnLoad/OnClose raufgezählt/runtergezählt werden, und das JS kann dann auf die Werte prüfen, bis es feststellt: "Junge, ich bin bei 0. Mach was!"
 
  • Gefällt mir
Reaktionen: BeBur und new Account()
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: new Account()
Erst mal Danke.
(Mein Timer-Tab oder Timer-Fenster fiele nur dem kompletten Schließen des Browsers zum Opfer, das hätte ich nicht im Auge.)

Die ganze Sache hat einen Haken weswegen ich auch vom Einzeiler sprach.
Alles mal wieder nicht meine Idee sondern nur ein „Ich stelle mir dies und das vor, habe ich wo gesehen, mach mal, dass wir das einem Kunden in die Hand geben können…“

Der Kunde soll auf seiner Seite (was bereits sehr viele Lösungen ausschließt) etwas einbauen das den Nutzer informiert, dass jener Kunde unter unserer Mithilfe noch etwas wissen möchte. Wenns jemand kennt - bei Besuch der Seite geht eine Information auf die erst mal in den Hintergrund geht (»Bitte dieses Fenster nicht schließen«…) und diese Info-auf-der-Lauer aktiviert die angekündigte Fortsetzung wenn die Hauptseite beendet wird.

Das wäre relativ simpel wenn das alles unter mein-- unserer Kontrolle passierte, unserer Website. Aber es soll ja mit einer Priese Code auf einer anderen Site ausgelöst werden in die weiter nicht einzugreifen ist.
Diese Einfachlösung kann ich also knicken. Immerhin gut zu wissen, dass ich mit dieser schon vorher vorhandenen Annahme nicht falsch liege.

CN8
 
Zurück
Oben