[英]how to open a URL is already opened in another five tabs of same browser using java script?
[英]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.