禁用ALT + F4,是的,我知道不建议这样做

时间:2013-11-12 19:51:04

标签: javascript

我需要一个JavaScript脚本,禁止用户使用ALT + F4关闭。我到处都看,但只是每个人都说不建议。

甚至可能不可能,如果不是,我将只需要检测用户何时退出并将其记录在数据库中。

这是我当前的脚本,它会检测用户是按下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;
    }
};

3 个答案:

答案 0 :(得分:6)

这个关键事件(在我猜的大多数操作系统上)都是在操作系统被发送到浏览器之前处理的,所以在浏览器中取消事件对事情没有帮助 - 即使它是在内部执行的Javascript浏览器的UI,不仅是当前文档。

因此 - 你想要做的事情无法完成。

答案 1 :(得分:3)

可以通过以下方式阻止生成的窗口关闭:

window.onbeforeunload = funcRef

我认为在这里登陆的读者可能想要提醒一下(就像我一样)。

有关详细信息,请参阅 Jquery prevent window closing

答案 2 :(得分:-1)

尝试使用以下代码:

window.webContents.on("before-input-event",(event,input)=>{
if(input.code=='F4'&&input.alt)event.preventDefault();});