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

Disable ALT+F4, yes I know it isn't recommended

本文关键字:这样做 我知道 ALT+F4 是的 禁用      更新时间:2023-09-26

我需要一个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;
    }
};

该关键事件(我猜在大多数操作系统上)在发送到浏览器之前由操作系统处理,因此取消浏览器中的事件也无济于事 - 即使它是在浏览器的 UI 中执行的 Javascript,而不仅仅是当前文档。

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

可以通过以下方式防止由此产生的窗口关闭:

window.onbeforeunload = funcRef

我认为登陆这里的读者可能希望被提醒这一点(就像我一样)。

有关相关详细信息,请参阅Jquery 阻止窗口关闭

尝试使用以下代码:

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