我需要能够识别浏览器中的哪个标签。我是否可以从浏览器中获取一些信息来标识选项卡?我不需要了解其他任何标签,只需要我所在标签的ID即可。它可以是随机数或序列号,也可以是日期时间戳,只要它与标签的生命周期。
我有一个客户端应用程序,它通过HTTP连接到远程服务器建立BOSH,如果我在多个选项卡中打开它,则每个实例都需要有自己的唯一ID,否则应用程序将失败,因此我只需要与只要该标签存在就可以使用该标签(例如,当我浏览提供此应用的网站时,该内容在页面刷新后仍然存在)。似乎应该在浏览器中可用,就像window.tabId一样,这是我所需要的。我有一个认真的开发模块,因为我无法摆脱似乎不存在的这个简单,简单,简单的解决方案。必须有一种方法(一种跨浏览器的解决方案)。
有任何想法吗?
最佳答案
SessionStorage是按选项卡/窗口显示的,因此您可以在sessionStorage中定义一个随机数,并在存在时首先获取它:
var tabID = sessionStorage.tabID ? sessionStorage.tabID : sessionStorage.tabID = Math.random();
更新:
在某些情况下,您可能在多个标签中拥有相同的sessionStorage(例如,当您复制标签时)。在这种情况下,以下代码可能会有所帮助:
var tabID = sessionStorage.tabID && sessionStorage.closedLastTab !== '2' ? sessionStorage.tabID : sessionStorage.tabID = Math.random();
sessionStorage.closedLastTab = '2';
$(window).on('unload beforeunload', function() {
sessionStorage.closedLastTab = '1';
});
关于javascript - 有什么方法可以识别JavaScript中的浏览器标签?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11896160/