繁体   English   中英

在同一浏览器的另一个选项卡中打开了如何查找URL的区域

[英]how to find a URL is aready opened in another tab of same browser

我想知道是否已经在同一浏览器的另一个选项卡中打开了相同的URL,如果需要,我需要发出警报。有人可以帮助我吗。需要使用javascript

尝试这个。

    var a = document.getElementById('opener'), w;        
   a.onclick = function() {
   if (!w || w.closed) {
    w = window.open("https://www.fb.com/");

  } else {
    console.log('window is already opened');

  }
  w.focus();
};

这是一个使用简单的JS和localStorage并使用当前打开的选项卡计数更新DOM的有效解决方案。 它使用存储事件使所有打开的选项卡/窗口之间的计数保持同步,而无需刷新页面。

请注意,此解决方案可在一个浏览器中检测给定域的打开的选项卡/窗口的数量,但不会在不同浏览器中保持计数。 本地存储上的Mozilla文档中:

[localStorage事件]实际上是域中其他页面使用存储来同步所做的任何更改的一种方式。 其他域上的页面无法访问相同的存储对象。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
(function() {
    var stor = window.localStorage;
    window.addEventListener("load", function(e) {
        var openTabs = stor.getItem("openTabs");
        if (openTabs) {
            openTabs++;
            stor.setItem("openTabs", openTabs)
        } else {
            stor.setItem("openTabs", 1)
        }
        render();
    })
    window.addEventListener("unload", function(e) {
        e.preventDefault();
        var openTabs = stor.getItem("openTabs");
        if (openTabs) {
            openTabs--;
            stor.setItem("openTabs", openTabs)
        }
        e.returnValue = '';
    });
    window.addEventListener('storage', function(e) {
        render();
    })

    function render() {
        var openTabs = stor.getItem("openTabs");
        var tabnum = document.getElementById("tabnum");
        var dname = document.getElementById("dname");
        tabnum.textContent = openTabs;
        dname.textContent = window.location.host
    }
}());
</script>
</head>
<body>
<div style="width:100%;height:100%;text-align:center;">
    <h1 >You Have<h1>
        <h1 id="tabnum">0</h1>
    <h1>Tab(s) of <span id="dname"></span> Open</h1>
</div>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM