0

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

3 回答 3

10

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

因此-您尝试做的事情无法完成。

于 2013-11-12T19:56:09.650 回答
3

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

window.onbeforeunload = funcRef

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

相关详情见 jquery防止窗口关闭

于 2014-03-08T01:46:18.097 回答
-1

尝试使用下面的代码:

window.webContents.on("before-input-event",(event,input)=>{
if(input.code=='F4'&&input.alt)event.preventDefault();});
于 2021-01-22T12:48:45.423 回答