在 window 上监听keypress事件
当触发keydown事件时,判断ctrlKey是否为true,keyCode是否为87(w
如果是,阻止默认事件。
但是似乎并不能阻止窗口关闭事件
//测试屏蔽ctrl+w
$(window).on('keydown',function(event){
if(event.ctrlKey&&event.keyCode==87){
event.preventDefault();
event.returnValue = false;
alert("已阻止关闭事件");
return false;
}
if(event.ctrlKey&&event.keyCode==65){
event.preventDefault();
alert("已阻止关闭事件");
return false;
}
});
下面那一段是测试其他组合键是不是能用
经过测试发现ctrl+a可以拦截,但是ctrl+w并不能拦截
通过打断点的方式发现,如果按了ctrl+w,似乎浏览器并没有触发keydown事件就直接关闭了页面
请问有什么解决方法么?
navigator.userAgent:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36"
==============================
刚刚去测试了一下
ctrl + w在chrome浏览器中,不会触发任何监听事件
如果说为了安全或者为了用户主观意愿,在按下ctrl + w 以后一定要关闭当前标签页
为什么不做成,事件依旧触发,但是强制执行关闭命令。
类似于 onbeforeunload
一开始搜没搜到才提问的
后来又去搜了一遍
只找到这些issue
https://bugs.chromium.org/p/c...
https://bugs.chromium.org/p/c...
https://bugzilla.mozilla.org/...
浏览器不允许监听
ctrl + s,ctrl + w,ctrl + n,ctrl + t
事件。
但是我没找到官方回复。
感觉这种设定很不方便啊。