2010-12-22 66 views
9

因此,在大多数当前浏览器中都有Tabs功能,是否有一种方法可以获取Tab索引?获取浏览器选项卡索引/ Id

因此Tab 1已经打开了www.google.com并且Tab 2已经打开了www.google.com,有没有一种方法可以确定Tab索引是什么?

伪代码:

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

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

有趣,因为一切我搜索有关标签的相关网页本身的选项卡索引,叹息......

+0

会是一个什么情况下使用这些信息(浏览器之外的附加元件)? – Boldewyn 2010-12-22 15:04:09

+0

这是更多的问题,可以这样做然后用例。我被问到这个问题,没有看到有关这个问题的任何内容,让我想到它是否可以完成。在服务器端,我不认为我可以识别单个选项卡,因为每个选项卡都被视为页面加载请求,但我认为JavaScript可能能够在浏览器上访问此信息。 – 2010-12-22 15:09:12

+1

就个人而言,如果我进入一个网站和一个弹出窗口或其他显示“你有选项卡1有效”或任何相同类型的东西。我会切换浏览器,直到这些东西被修复,并抵制我正在使用的网站。 :D – Dan 2010-12-22 15:12:02

回答

6

严格来讲, TABS在最终用户的机器上。 PHP在服务器上工作。 PHP无法看到最终用户的机器在做什么,它只能用服务最终用户的PHP页面。

Google会通过JavaScript和Cookies来执行此操作。对于打开的每个页面实例,增加一个cookie计数器。如果计数器> 1,则使用AJAX显示错误消息。此外,如果禁用了Cookie或JavaScript,则禁止页面正常工作。

调查jQuery。

0

在PHP中:绝对不会 - 它在执行您的服务器无法访问Cleints浏览器。

也许有一个使用JavaScript的解决方案(但我从来没有听说过,我敢肯定,这是不可能的 - 至少不作为跨浏览器的解决方案)。

我认为你将拥有的最好机会(如果有的话)使用其他客户端语言,如flash,silverlight或java插件,因为这些可以做的比javascript更多 - 但是,对不起,我不知道任何这些足以提供更多信息或提示。

0

至于确定绝对标签索引,我知道没有办法用Javascript来做到这一点。你可以通过他们的名字来识别窗口,但没有其他的东西。

在您的两个包含相同网页的选项卡的示例中,您应该能够通过使其相互认识来唯一标识它们。你需要为此使用cookies。实际上,当一个页面被加载时,它会检查一个cookie,告诉它关于当前加载的页面的其他实例,并据此作出决定。

在这种情况下,您的onload处理程序将检查cookie并注册加载页面。您还需要一个onunload处理程序来取消关于正在卸载的页面的cookie。

请参阅Javascript communication between browser tabs/windows关于如何使用cookie在使用Javascript的窗口之间进行通信的更多信息。

0

不要浪费任何时间在这个伴侣上。这是不可能的,主要是因为安全限制,浏览器内的任何网页都无法获得这种信息。

尝试寻找替代方法,因为其他人在其评论中提出了一些建议。

0

我确定没有支持该信息的全局变量。但也许聪明的浏览器如Firefox或谷歌浏览器可能会支持它。我在网上做了一个快速搜索,然后我带着这些。

首先,检查Mozilla Tab Helper可以使用Mozilla。但请记住,这绝不会是一个跨浏览器解决方案。另外,我认为没有跨浏览器解决方案。

第二个是,如果你想使用这个为你自己使用,那么它可能会有用,我不测试它。这是一个插件。这里是Open Tab Count Mozilla Addon

Open Tab Preview

相关问题