js 如何屏蔽 Chrome 的部分快捷键

2022-09-26 23:09:17 +08:00
 JCZ2MkKb5S8ZX9pq

需求是

1384 次点击
所在节点    前端开发
7 条回复
JCZ2MkKb5S8ZX9pq
2022-09-26 23:14:54 +08:00
包括 vue 的官方文档,也是用 Ctrl+K 触发搜索,但没影响其他 Chrome 原本的快捷键。
huxins
2022-09-26 23:22:27 +08:00
vopin
2022-09-26 23:29:12 +08:00
preventDefault 可以用呀,不需要别的操作。
JCZ2MkKb5S8ZX9pq
2022-09-26 23:41:59 +08:00
@huxins
@vopin
我也感觉 preventDefault 应该可以,但不知道为啥我判断组合键之后,它就先被浏览器占用了。
我组合键大约有 10 组,我之前是怀疑判断时候那些微的耗时,会不会导致浏览器先占了。
dcsuibian
2022-09-26 23:54:39 +08:00
document.body.addEventListener('keydown', event => {
if ('p' === event.key.toLowerCase() && (event.getModifierState('Meta') || event.getModifierState('Control'))) {
event.preventDefault()
console.log('检测到组合键')
}
}, false)


我是 Mac ,打印的快捷键是 command+p ,windows 上我猜应该是 ctrl+p
实测,像是打印、查找是能够拦截住的,但打开新窗口的快捷键不行
如果把'keydown'改成'keypress'也不行
JCZ2MkKb5S8ZX9pq
2022-09-27 00:19:59 +08:00
@dcsuibian 好像是看有几个地方说 ctrl+N 不行,但我现在是 ctrl+shift+g 这种都不行,还在查。
JCZ2MkKb5S8ZX9pq
2022-09-27 01:01:16 +08:00
好像忽然又可以了,谢谢各位。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/883152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX