2013-03-06 72 views
5

我经历了这么搜查被打开,这个问题有beenaskedbeforeseveraltimes,但是我发现没有答案来解释我想实现的行为如何实际是实现。如何在搜索结果页面检测项目已在另一个浏览器选项卡

我想到的是模仿booking.com功能,其中当您从搜索结果列表中打开搜索结果时,出现一个表示结果已在另一个选项卡(或窗口)中打开的div,以及当其他选项卡(或窗口)关闭时,它会消失。

截图:enter image description here

第一次尝试,以检查是否一些JavaScript已经连接到的链接,但事实并非如此,因为如果单纯从页面的源代码复制该网址,并打开它的功能作品。

所以我认为它可以在服务器端进行管理,启动wireshark以试图捕获两个打开的页面和服务器之间的任何ajax调用。有很多请求,但似乎没有人通过所需的信息(我猜酒店ID或一些网址)。另请注意,在隐身窗口或其他浏览器(我的意思是,firefox而不是chrome)窗口中打开包含会话ID的结果项URL会中断该功能;以便排除任何会话或IP地址跟踪。

我想到的最后一次尝试是搜索结果页面正在轮询一些在另一个页面打开时设置在域中的cookie,并在关闭时取消设置。所以我查了一下cookie,其内容实际上有点含糊不清,但我所看到的是,cookie在其他标签的开启和关闭中实际上并没有发生变化,所以再次,它不能这样做。

还剩什么?

回答

2

从理论上讲,应该可以使用localStorage/sessionStorage来设置每页的当前页面URL,并在“原始”页面上每隔一段时间检查一次,以查看该值是否不是与document.location相同。

如果您还在存储事物中设置了当前时间,则可以通过查看“上一个制表符时间”是否超过30秒前等来查看页面是否关闭。

至于网站,我访问了它,并做了搜索,并没有看到任何警告或任何有关新标签打开的任何时候,当我尝试它。

+0

添加了一个屏幕快照,向您显示该功能的位置 – 2013-03-06 02:06:14

+0

您已将它钉牢。子标签页在本地存储酒店ID,并在关闭时删除它。本地存储上的父页面池,并显示/隐藏作为结果列出的各个酒店的div。非常感谢你;并欢迎堆栈溢出。 – 2013-03-06 02:17:11

相关问题