我需要一个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;
}
};
答案 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();});