Une façon d'identifier l'onglet du navigateur en JavaScript?

Je dois être en mesure d'identifier quel onglet je suis dans le navigateur. N'y a-t-il pas un peu d'information que je peux obtenir du navigateur pour identifier l'onglet? Je n'ai besoin de rien savoir sur d'autres onglets, j'ai juste besoin d'un identifiant pour l'onglet dans lequel je suis. Il pourrait s'agir d'un nombre aléatoire ou séquencé, ou d'un tampon de date, tant qu'il reste le même pour le Vie de l'onglet.

J'ai une application côté client qui établit une connexion BOSH sur HTTP vers un serveur distant, et si je l'ouvre dans plusieurs onglets, chaque instance a besoin de son propre identifiant unique ou l'application échoue, alors j'ai juste besoin d'un nombre unique associé à L'onglet tant que cet onglet existe (c.-à-d. Quelque chose qui survit à la mise à jour de la page lorsque je navigue sur le site qui fournit cette application). On dirait que rien ne devrait être disponible dans le navigateur, comme window.tabId – c'est tout ce dont j'ai besoin. J'ai un bloc de développement sérieux car je ne peux pas passer cette solution simple, simple et simple qui ne semble pas exister. Il doit y avoir un moyen (une solution de navigateur croisé à ce sujet).

Des idées?

    Vous devez utiliser html5, mais sessionStorage combiné avec un guide aléatoire semble être ce que vous voulez.

    SessionStorage est par onglet / fenêtre, de sorte que vous pouvez définir un nombre aléatoire dans sessionStorage et l'obtenir en premier s'il existe:

    var tabID = sessionStorage.tabID ? sessionStorage.tabID : sessionStorage.tabID = Math.random(); 

    MISE À JOUR :
    Dans certains cas, vous pouvez avoir le même journal de session dans plusieurs onglets (p. Ex. Lorsque vous doublez l'onglet). Dans ce cas, le code suivant peut aider:

     var tabID = sessionStorage.tabID && sessionStorage.closedLastTab !== '2' ? sessionStorage.tabID : sessionStorage.tabID = Math.random(); sessionStorage.closedLastTab = '2'; $(window).on('unload beforeunload', function() { sessionStorage.closedLastTab = '1'; }); 

    Vous ne pouvez pas obtenir un identifiant avec javascript, mais il existe une solution qui peut vous aider à utiliser différentes sessions / cookies lorsque l'utilisateur ouvre un nouvel onglet.

    Quelques références:

    Get Browser Tab Index / Id

    Obtenir des URL des onglets Firefox depuis l'extension Firefox

    Comment différez-vous les sessions dans les onglets du navigateur?

    Obtenez une session unique dans chaque onglet du navigateur

    Asp.net – session – plusieurs onglets du navigateur – différentes sessions?

    Une des solutions possibles utilise la propriété "window.name", mais je ne veux pas l'utiliser car quelqu'un d'autre peut l'utiliser.

    J'ai trouvé une solution plus possible: using sessionStorage. Il est pris en charge par FF3.5 +, Chrome4 +, Safari4 +, Opera10.5 + et IE8 +.

    S'il n'y a aucune chance d'un utilisateur d'ouvrir 3 onglets dans les 2 millisecondes, peut utiliser un horodatage et le stocker dans window.name et l'utiliser comme clé dans votre recherche. La valeur window.name restera avec l'onglet jusqu'à ce qu'il soit fermé.

    Timestamp