我想在用户的同一浏览器(窗口或标签页)中阻止与我的Web企业应用程序的多个连接。
我怎么能用Javascript做到这一点?
答案 0 :(得分:1)
您可以创建会话变量(日期和时间)并将其存储在localStorage中。在window.load上检查它,如果它存在则关闭窗口,或阻止进一步加载。
修改强>
我创建了一个完整的解决方案,也许我将来会发现它的一些用途:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script>
(function () {
var interval = 10000; //can be modified to be faster, now it's 10 seconds
// localStorage is available everywhere
// sessionStorage is available only in current page / tab,
// so we can allow page refresh
if (localStorage.getItem("catch") && !sessionStorage.getItem("catch")) {
var date = new Date(parseInt(localStorage.getItem("catch"), 10));
if (Date.now() - date < interval) {
//prevent further loading, hide things etc.
document.write('catch');
}
} else {
setInterval(function () {
var date = Date.now();
localStorage.setItem("catch", date);
sessionStorage.setItem("catch", date);
}, interval);
}
})();
</script>
</head>
<body>
</body>
</html>
答案 1 :(得分:1)
我可以想象使用cookies或localStorage的解决方案:
X
是否存在cookie或localStorage。如果存在,则显示错误并重定向到错误页面。X
不存在,请继续。window.unload
和window.onbeforeunload
个事件),请删除X
。