【发布时间】:2013-11-12 19:51:03
【问题描述】:
我需要一个可以禁止用户使用 ALT+F4 关闭的 JavaScript 脚本。我到处都看过,但只是每个人都说不建议这样做。
可能甚至不可能,如果不是,我只需要检测用户何时以这种方式退出并将其记录到数据库中。
这是我当前的脚本,它检测用户是否按下 ALT 或 F4,但我无法取消该按键。有没有办法让浏览器认为用户也按下了另一个键,所以组合将是 ALT + G + F4 例如,这会破坏 ALT + F4 组合?
//Run on keydown, disable user from quiting via ALT+F4
document.onkeydown = function(evt) {
evt = evt || window.event;
//Get key unicode
var unicode = evt.keyCode ? evt.keyCode : evt.charCode;
//Check it it's ALT or F4 (115)
if (unicode == 115 || evt.altKey == 1)
{
window.event.cancelBubble = true;
window.event.returnValue = false;
}
};
【问题讨论】:
-
不可能。 JavaScript 在浏览器中被沙盒化,不能阻止用户与他的窗口管理器或操作系统进行交互。 (对此我非常感谢。)(另外,Alt-F4 并不是关闭某些东西的唯一方法,而且无论如何只适用于 Windows 环境。)
-
@David -- 还没有... 邪恶的想法
-
您最好在
window.unload()事件上执行您的退出脚本 JavaScript,该事件在用户关闭窗口且不阻止默认机制时触发 - 或者,保持 Cookie 中的会话以匹配当此人重新登录时,如果不匹配。退出。 -
您是否只需要为
Alt+F4或 1001 种关闭窗口的方法中的任何一种这样做? -
您是否还要检测何时断电、网络连接中断或计算机崩溃?如果没有,你应该想一个更好的方法来检测用户是否断开连接。
标签: javascript