w3schools tag tab change javascript browser tabs uniqueidentifier

javascript - tag - title html w3schools



¿Alguna forma de identificar la pestaña del navegador en JavaScript? (6)

Al menos para Chrome, hay una respuesta oficial desde 2013: API de chrome.tabs .

Necesito poder identificar en qué pestaña estoy dentro del navegador. ¿No hay algo de información que pueda obtener del navegador para identificar la pestaña? No necesito saber nada sobre otras pestañas, solo necesito una identificación para la pestaña en la que me encuentro. Podría ser un número aleatorio o secuenciado, o un sello de fecha y hora, siempre que siga siendo el mismo para el vida de la pestaña.

Tengo una aplicación del lado del cliente que hace una conexión BOSH sobre HTTP a un servidor remoto, y si lo abro en varias pestañas, cada instancia necesita su propia identificación única o la aplicación falla, así que solo necesito un número único que esté asociado con la pestaña durante el tiempo que esa pestaña exista (es decir, algo que sobreviva a la actualización de la página mientras navego por el sitio que proporciona esta aplicación). Parece una obviedad que debería estar disponible en el navegador, como window.tabId, eso es todo lo que necesito. Tengo un bloque de desarrollo serio porque no puedo superar esta solución simple, simple y simple que parece no existir. Debe haber una manera (una solución de navegador cruzado en eso).

¿Algunas ideas?


No puede obtener la identificación de pestañas con javascript, sin embargo, hay alguna solución que puede ayudarlo con como usar diferentes sesiones / cookies cuando el usuario abre una nueva pestaña.

Alguna referencia:

Obtener índice / Id de la pestaña del navegador

obtener las URL de las pestañas de Firefox desde la extensión de Firefox

¿Cómo diferenciar sesiones en las pestañas del navegador?

Obtenga una sesión única en cada pestaña del navegador

asp.net - sesión - varias pestañas del navegador - ¿diferentes sesiones?


SessionStorage es por pestaña / ventana, por lo que puede definir un número aleatorio en sessionStorage y obtenerlo al principio si existe:

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

ACTUALIZAR :
En algunos casos, puede tener la misma sessionStorage en varias pestañas (por ejemplo, cuando duplica la pestaña). En ese caso, el siguiente código puede ayudar:

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


Si no hay ninguna probabilidad de que un usuario abra 3 pestañas en 2 milisegundos, podría usar una marca de tiempo y almacenarla en window.name y usarla como la clave en su búsqueda. El valor de window.name permanecerá en la pestaña hasta que se cierre.

Timestamp


Tienes que estar usando html5, pero sessionStorage combinado con un guid aleatorio parece ser lo que quieres.


Una de las posibles soluciones es usar la propiedad "window.name", pero no quiero usarla porque alguien más puede usarla.

Encontré una solución más posible: usar sessionStorage. Es compatible con FF3.5 +, Chrome4 +, Safari4 +, Opera10.5 + e IE8 +.