我想防止用户在同一浏览器(窗口或选项卡)中与我的 Web 企业应用程序进行多次连接。
我怎样才能使用 Javascript 做到这一点?
我想防止用户在同一浏览器(窗口或选项卡)中与我的 Web 企业应用程序进行多次连接。
我怎样才能使用 Javascript 做到这一点?
您可以创建一个会话变量(日期和时间)并将其存储在 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>
我可以想象一个使用 cookie 或 localStorage 的解决方案:
X
作为 cookie 或 localStorage 存在。如果存在,则显示错误并重定向到错误页面。X
不存在,请继续。window.unload
和window.onbeforeunload
事件)删除X
。