javascript中不可修改的键盘快捷键
正如标题所示,我想知道——在现代浏览器中,哪些键盘快捷键是javascript无法阻止的?这是浏览器相关的还是系统相关的 到目前为止,我已经有了javascript中不可修改的键盘快捷键,javascript,events,browser,preventdefault,Javascript,Events,Browser,Preventdefault,正如标题所示,我想知道——在现代浏览器中,哪些键盘快捷键是javascript无法阻止的?这是浏览器相关的还是系统相关的 到目前为止,我已经有了Ctrl+N,Ctrl+Shift+N,Ctrl+T,Ctrl+Shift+T,Ctrl+W,Ctrl+Shift+W,所有这些都来自谷歌浏览器。然后是带有windows键的标准windows快捷方式,如windows键本身、winkey+R、winkey+s,等等,还有Ctrl+Shift+Escape。有没有办法知道哪些键盘快捷键会导致javascr
Ctrl+N
,Ctrl+Shift+N
,Ctrl+T
,Ctrl+Shift+T
,Ctrl+W
,Ctrl+Shift+W
,所有这些都来自谷歌浏览器。然后是带有windows键的标准windows快捷方式,如windows键本身、winkey+R
、winkey+s
,等等,还有Ctrl+Shift+Escape
。有没有办法知道哪些键盘快捷键会导致javascript无法阻止的结果
我想我的问题可以归结为:如果event
是一个键盘事件,那么event.preventDefault()是什么代码>实际防止
编辑
让我们在这里列出一个清单:
Ctrl+N
Ctrl+Shift+N
Ctrl+T
Ctrl+Shift+N
Ctrl+W
Ctrl+Shift+W
winkey+什么吗?
Ctrl+Shift+Escape
Ctrl+Alt Delete
(由Psi添加)
Alt+F4
Escape
和F11
(全屏)(由zer00ne添加)
您需要使用捕获事件的阶段来处理和防止其默认行为
但是!不能在safari中覆盖CTRL+R、CTRL+W或CMD事件
防止用户刷新页面的更好方法是
window.onbeforeunload=函数(事件){}
比如说
function preventFn(event) {
if (event.keyCode === YOU_KEY_CODE && event.metaKey) {
event.preventDefault();
event.stopPropagation();
}
}
document.addEventListener('keydown', preventFn, true); // true means use capture phase of event
例如,您可以使用高级库进行快捷方式管理
-有力的
-小巧方便
p、 使用您需要的内容,而不是event.metaKey
。文档Ctrl+Alt+Del
肯定也不会被阻止^^事实上,它不会,就像Alt+F4
,而且可能还有更多的文档,我想你不会找到完整的列表,你唯一能做的就是测试它们。如果你做了,在文档中发布它:如果它同时依赖于浏览器和系统,那将需要大量的测试;肯定有更简单的方法,对吧?也许你可以创建一个javascript捕捉所有键盘事件,并创建一个外部脚本(比如vb脚本)向浏览器击键。我不知道,但是,如果你能检测到它是否是可以预防的。