如何识别浏览器标签页?

3
我想使用JavaScript识别浏览器标签(在我的域名下)。我的意思是,如果用户打开了我的网站的多个标签,并仅在一个页面上提交了Web表单,则我希望仅通知此页面,即使用户离开了此页面。它应该是最大的跨浏览器解决方案。
附言1:可能的解决方案之一是使用“window.name”属性,但我不想使用它,因为其他人也可以使用它。
附言2:我找到了另一种可能的解决方案:使用sessionStorage。它受到FF3.5+、Chrome4+、Safari4+、Opera10.5+和IE8+的支持。噢,我需要IE7!
提前致谢!

1
什么意思?如果一个标签页发出请求,响应将直接发送到该标签页。 - Dave Newton
这是我没有尝试过的东西:服务器无法向浏览器推送数据,必须从浏览器发布请求,但您可以使用本地存储(如果可用)来跟踪多个页面(次要页面不会向服务器发布任何AJAX请求)。 - Adriano Repetti
Dave Newton,我们正在使用CometD,但存在延迟问题。 - Denis Liger
@DioNNiS,针对IE7,请查看http://msdn.microsoft.com/en-us/library/ms531424(VS.85).aspx。 - Adriano Repetti
3个回答

1

我认为这是做不到的。每个打开的浏览器标签页基本上就像一个新的浏览器实例。就像用户打开另一个浏览器一样。出于设计考虑,一个标签页对另一个标签页一无所知。这就是应该的。你能想象网站开发人员如果能够添加代码来“看到”你在浏览器中打开的其他网站会有什么影响吗?


1

window.name是您可以用于此目的的唯一持久数据元素,如您的要求所述。

我只想通知这个页面,即使用户离开了这个页面。

这是不可能的。一旦用户从页面导航离开,您就失去了对该选项卡的控制。您无法推送到页面,它需要从该页面发出服务器请求,即使它是ajax。


0

使用sessionStorage。它被FF3.5+、Chrome4+、Safari4+、Opera10.5+和IE8+支持。

对于IE7,使用“window.name”属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接