所以在大多数当前浏览器中都有Tabs的功能,有没有办法获得Tab索引?
所以标签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";
}
有趣的是,我搜索关于标签的所有内容都与网页本身的标签索引相关,叹息......
答案 0 :(得分:6)
严格来说。 TABS位于最终用户的计算机上。 PHP适用于服务器。 PHP无法看到最终用户的计算机正在做什么,它只能 提供 最终用户的PHP页面。
Google使用JavaScript和Cookie完成此操作。对于打开的每个页面实例,递增一个cookie计数器。如果计数器> 1,使用AJAX显示错误信息。此外,如果禁用cookie或JavaScript,禁止页面正常运行。
了解jQuery。
答案 1 :(得分:0)
:绝对不是 - 它在您的服务器上执行而无法访问cleints浏览器。
也许有一个使用javascript的解决方案(但我从来没有听说过,我很确定这也不可能 - 至少不是作为跨浏览器的解决方案)。
我认为你有最好的机会(如果有的话)是使用其他客户端语言,如flash,silverlight或java-plugin,因为这些可以比javascript做得更多 - 但我是抱歉,我不知道这些是否足以提供更多信息或提示。
答案 2 :(得分:0)
就确定绝对标签索引而言,我知道无法使用Javascript进行操作。您可以按名称识别窗口,但不能识别其他任何内容。
在包含相同网页的两个标签的示例中,您应该能够通过让彼此了解来识别它们。你需要使用cookies。本质上,当一个页面被加载时,它会检查一个cookie,告诉它关于当前加载的页面的其他实例,并做出相应的决定。
在这种情况下,您的onload处理程序将检查cookie,并注册加载页面。您还需要一个onunload处理程序来取消设置与正在卸载的页面相关的cookie。
有关如何使用Cookie通过Javascript在Windows之间进行通信的详细信息,请参阅Javascript communication between browser tabs/windows。
答案 3 :(得分:0)
不要再浪费时间在这个伴侣身上了。这是不可能的,主要是因为安全限制,浏览器内的任何网页都无法获取此类信息。
尝试寻找替代方法,正如其他一些人在评论中所建议的那样。
答案 4 :(得分:0)
我确信没有支持该信息的全局变量。但也许聪明的浏览器,如Firefox或谷歌浏览器可能会支持它。我在网上快速搜索了一下,我带来了这些。
首先,检查Mozilla Tab Helper可以与Mozilla一起使用。但请记住,这绝不是一个跨浏览器的解决方案。另外,我认为没有跨浏览器解决方案。
第二个是,如果你想将它用于自己的使用,那么它可能很有用,我不测试它。这是一个插件。这是Open Tab Count Mozilla Addon