Получить индекс / идентификатор вкладки браузера - PullRequest
10 голосов
/ 22 декабря 2010

Таким образом, в большинстве современных браузеров есть функция вкладок, есть ли способ получить индекс вкладок?

, поэтому на вкладке 1 открыт сайт www.google.com, а на вкладке 2 - www.google.com открыл в нем, есть ли способ определить, что такое индекс табуляции?

Псевдокод:

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

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

Забавно, так как все, что я ищу о вкладках, связано с индексом вкладоко самой веб-странице, вздох ...

Ответы [ 5 ]

6 голосов
/ 12 января 2011

Строго говоря.Таблицы находятся на компьютере конечного пользователя.PHP работает на сервере.PHP не может видеть, что делает машина конечного пользователя, он может только обслуживать страницы конечного пользователя PHP.

Google делает это с помощью JavaScript и куки,Для каждого экземпляра открытой страницы увеличивайте счетчик файлов cookie.Если счетчик> 1, используйте AJAX для отображения сообщения об ошибке.Кроме того, запретите работу страницы, если файлы cookie или JavaScript отключены.

Просмотрите jQuery.

0 голосов
/ 15 января 2011

Я уверен, что нет глобальной переменной для поддержки этой информации. Но, возможно, умные браузеры, такие как Firefox или Google Chrome, могут что-то поддерживать. Я сделал быстрый поиск в сети, и я пришел с этим.

Во-первых, проверьте Mozilla Tab Helper может работать с Mozilla. Но помните, это никогда не будет кросс-браузерным решением. Кроме того, я думаю, что нет кросс-браузерного решения.

Во-вторых, если вы хотите использовать это для собственного использования, это может быть полезно, я не проверяю это. Это аддон. Вот это Open Tab Count Mozilla Addon

Просмотр с открытой вкладкой

0 голосов
/ 14 января 2011

Не тратьте больше времени на этого приятеля.Это невозможно, главным образом потому, что любая веб-страница внутри браузера не сможет получить такую ​​информацию из-за ограничений безопасности.

Попробуйте найти альтернативный подход, как предлагали некоторые другие парни в своих комментариях..

0 голосов
/ 07 января 2011

Что касается определения абсолютного индекса табуляции, я не знаю способа сделать это с помощью Javascript. Вы можете идентифицировать окна по их именам, но не по имени.

В вашем примере двух вкладок, содержащих одну и ту же веб-страницу, вы должны иметь возможность однозначно идентифицировать их, информируя их друг о друге. Вам нужно использовать куки для этого. По сути, когда страница загружается, она проверяет наличие файла cookie, который сообщает ей о других экземплярах страницы, которые загружены в данный момент, и принимает соответствующие решения.

В этом случае ваш обработчик загрузки будет проверять куки и регистрировать страницу загрузки. Вам также понадобится обработчик onunload, чтобы сбросить файл cookie, относящийся к выгружаемой странице.

См. Связь Javascript между вкладками / окнами браузера для получения дополнительной информации о том, как использовать куки для связи между окнами с Javascript.

0 голосов
/ 22 декабря 2010

в php: определенно нет - он выполняется на вашем сервере без доступа к браузеру cleints.

возможно, есть решение с использованием javascript (но я никогда не слышал об этом, и я почти уверен, что это тоже невозможно - по крайней мере, не как кросс-браузерное решение).

я думаю, что лучший шанс, который у вас будет (если он вообще есть), это использование других клиентских языков, таких как flash, silverlight или java-plugin, поскольку эти могут сделать намного больше, чем javascript - но я извините, я не знаю ничего из этого достаточно хорошего, чтобы дать больше информации или подсказок.

...