【发布时间】:2013-10-30 14:03:56
【问题描述】:
我想防止用户在同一浏览器(窗口或选项卡)中多次连接我的网络企业应用程序。
我怎样才能使用 Javascript 做到这一点?
【问题讨论】:
标签: javascript connection browser
我想防止用户在同一浏览器(窗口或选项卡)中多次连接我的网络企业应用程序。
我怎样才能使用 Javascript 做到这一点?
【问题讨论】:
标签: javascript connection browser
您可以创建会话变量(日期和时间)并将其存储在 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。【讨论】: