2010-12-22 16 views
9

Entonces, en la mayoría de los navegadores actuales, existe la función de pestañas, ¿hay alguna manera de obtener el índice de pestañas?Obtener índice/ID de la ficha del navegador

así que la pestaña 1 tiene abierto www.google.com y la pestaña 2 tiene abierto www.google.com, ¿hay alguna manera de identificar qué es el índice de pestaña?

Pseudo Código:

if($tab == 2) { 
    alert "Tab 2 is active\n"; 
} 

if($tab == 1) { 
    alert "Please use Tab 2 as this is Tab 1\n"; 
} 

divertido como todo lo que busco por alrededor de pestañas está relacionado con el índice de tabulación de la propia página web, suspiro ...

+0

Lo que sería un caso de uso de dicha información (fuera de complementos del navegador)? – Boldewyn

+0

Es más una cuestión de si se puede hacer esto, entonces use mayúsculas y minúsculas. Me hicieron la pregunta y no vi nada sobre el tema, me hicieron pensar si se podía hacer. En el lado del servidor, no creo que pueda identificar pestañas individuales, ya que cada pestaña se trata como una solicitud de carga de página, pero estaba pensando que JavaScript podría tener acceso a esta información en el navegador. –

+1

Personalmente, si entro en un sitio web y una ventana emergente o lo que aparece, aparece diciendo "Tiene la pestaña 1 activa" o algo por el estilo. Cambiaría los navegadores hasta que se arreglara eso y boicotearía el sitio web que estoy usando. : D – Dan

Respuesta

6

Estrictamente hablando. TABS están en la máquina del usuario final. PHP funciona en el servidor. PHP no puede ver lo que está haciendo la máquina del usuario final, solo puede servir las páginas PHP'ed del usuario final.

Google hace esto con JavaScript y Cookies. Para cada instancia de la página abierta, incremente un contador de cookies. Si el contador> 1, usa AJAX para mostrar un mensaje de error. Además, prohíba el funcionamiento de la página si las cookies o JavaScript están deshabilitados.

Mire en jQuery.

+0

Gracias, entiendo que PHP es un lenguaje del lado del servidor, pero estaba pensando que tal vez una variable del entorno podría establecerse como USER_AGENT que podría dar alguna pista (s). Tendré que probar la idea del contador de cookies, gracias –

0

en php: definitivamente no - Se ejecuta en su servidor sin acceso al navegador de cleints.

tal vez haya una solución que utiliza javascript (pero nunca he oído hablar de eso, y estoy bastante seguro de que esto tampoco es posible, al menos no como una solución entre navegadores).

Creo que la mejor oportunidad que tendrá (si es que hay una) es usar otros idiomas del lado del cliente como flash, silverlight o un plugin de java, ya que estos pueden hacer mucho más que javascript, pero yo ' Lo siento, no conozco ninguno de estos lo suficientemente buenos como para dar más información o sugerencias.

+0

Gracias, estoy de acuerdo con usted en que esto podría no ser posible incluso desde un idioma del lado del cliente. Alguien hizo las preguntas, metidas en mi cabeza, solo quería saber. Gracias –

0

En cuanto a la determinación del índice absoluto de pestañas, no conozco ninguna forma de hacerlo con Javascript. Puede identificar las ventanas por sus nombres, pero no por ninguna otra cosa.

En su ejemplo de dos pestañas que contienen la misma página web, debe poder identificarlas de forma única haciéndolas conscientes entre sí. Necesitarías usar cookies para esto. Básicamente, cuando se carga una página, verificará si hay una cookie que le informe sobre otras instancias de la página que está cargada actualmente, y tomará las decisiones correspondientes.

En este caso, su controlador de carga verificaría las cookies y registraría la página de carga. También necesitaría un controlador onunload para desarmar la cookie perteneciente a la página que se está descargando.

Consulte Javascript communication between browser tabs/windows para obtener más información sobre cómo usar las cookies para comunicarse entre ventanas con Javascript.

0

No pierdas más tiempo con esta pareja. No es posible, principalmente porque cualquier página web dentro del navegador no podrá obtener este tipo de información debido a restricciones de seguridad.

Intente buscar un enfoque alternativo tal como lo han sugerido algunos de los otros en sus comentarios.

0

Estoy seguro de que no hay una variable global para admitir esa información. Pero tal vez navegadores inteligentes como Firefox o Google Chrome podrían respaldar algo. He hecho una búsqueda rápida en la red y vine con estos.

En primer lugar, marque Mozilla Tab Helper para trabajar con Mozilla. Pero recuerda, esto nunca será una solución de navegador cruzado. Además, estoy pensando que no hay una solución de navegador cruzado.

En segundo lugar, si desea utilizar esto para su propio uso, puede ser útil, no lo pruebo. Este es un complemento. Aquí está el Open Tab Count Mozilla Addon

Open Tab Preview

Cuestiones relacionadas