• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Browser Tab/Fenster identifizieren

petrei86

Mitglied
Hallo Leute

Ich arbeite an einem Webinterface welches der User mit einem Useraccount aber mehreren Instanzen nuten können soll.

Die User-Session löse ich mittels PHP-Session welche über ein Cookie wiedererkannt wird - Also ganz normal.

Nun möchte ich aber auch die verschiedenen, gleichzeig geöffneten Tabs oder Fenster unterscheiden können. Ursprünglich habe ich mi überlegt einfach bei jedem Link meine InstanzId als GET mi zu geben, ausser bei den _blank links.
Das Problem: Wenn der Benutzer mal einen normalen Link, also mit InstanzId mittels rechtsklick => neuer Tab öffnet, so habe ich zwei Tabs mit der selben InstanzId.

Daher meine Frage:
Komme ich pro Tab/Fenster zu einer eindeutigen Id welche ich verwenden kann?

Gruss petrei86
 
Werbung:
So ganz verstehe ich das noch nicht. Mit Javascript kannst du neue Tags offenen und auch drauf zugreifen bzw identifizieren. In den Hauptfenster kannst du dann auch die Tabd wieder schließen wenn es sein muss . Vielleicht erklärst du mal was du vor hast oder Poster dein Code oder links zu deiner Seite
 
Kurz gesagt: Ich wünschte mir bei jedem https Aufruf (Screen und Ajax) die Information von welcher TabId diese kommt.
 
Werbung:
@Sempervivum danke für deine Ausführungen. Wie du erkannt hast, hängt genau da der Haken.

Gibt der Browser im Header wirklich nirgends eine Information mit, welche mit über den verwendeten Tab/Fenster informiert?
 
Gibt der Browser im Header wirklich nirgends eine Information mit, welche mit über den verwendeten Tab/Fenster informiert?
Schon, aber da kannst du nicht mit Internet darauf zugreifen.
Falls du was bauen willst, was nur für dich sein soll, dann erstelle dir ein Add-on.
In Chrom kann man die offenen Tabs hier sehen chrome://discards/
Bei anderen Browse geht das bestimmt auch, da habe ich mich noch nicht mit befasst.
 
Zuletzt bearbeitet:
Das, was du vorhast, geht nur mit JavaScript... der sessionStorage ist normalerweise eindeutig pro Tab (wenn du den Tab klonst, nicht mehr)
Hier ein stark vereinfachtes, ungetestetes Beispiel, um das Prinzip zu verstehen:

  • Du erzeugst im Session-Storage eine random-ID
  • Sobald die seite aufgerufen wird, hängst du diese ID als Parameter an jeden Link, den man anklicken kann
  • Einschränkungen
    • Das ganze funktioniert dann nicht für Ajax-Requests oder andere JavaScripts und auch nicht für Formulare. Hier müsstest du entsprechend anpassen.
    • Wenn ein Tab geklont wird (vom User), dann müsstest du dir einen window onunload oder onbeforeunload handler schreiben, der das behandelt...
Javascript:
if(!sessionStorage.tabId) {
    sessionStorage.tabId = Math.random();
}


document.addEventListener("DOMContentLoaded", function(event) {
    document.querySelectorAll('a').forEach((a) => { a.setAttribute('href', a.getAttribute('href') + "?tabID=" + sessionStorage.tabID)});
});
 
Werbung:
Zurück
Oben