如何在 Chrome 浏览器按键事件上捕获 `Ctrl+1` 热键?
How to capture `Ctrl+1` hotkey on Chrome browser keydown event?
我现在正在开发一个思维导图操作的网站,现在想做一些热键,让操作更好。
在XMind中,Ctrl+1
代表添加一个标签,编号为1,但是我发现keydown事件无法捕获事件。相反,Ctrl+1
导致激活第一个 Chrome 选项卡,即使我调用 e.preventDefault()
.
所以chrome浏览器的优先级最高所以不会被拦截。如果我想让 Ctrl+1
热键像预期的那样,有什么解决办法吗?
document.addEventListener('keydown', function(e) {
if (e.ctrlKey && e.code === 'Digit1') {
// ...
e.preventDefault()
}
})
This thread 似乎有一个讨论可能会回答您的问题。
最简单的答案是使用 e.preventDefault(); e.stopPropagation()
。希望该帖子能回答您的问题。
document.addEventListener('keydown', function (e) {
console.log(e.keyCode)
if (e.ctrlKey && [49, 50, 51].includes(e.keyCode)) {
e.preventDefault()
console.log('hahahah')
}
})
我现在正在开发一个思维导图操作的网站,现在想做一些热键,让操作更好。
在XMind中,Ctrl+1
代表添加一个标签,编号为1,但是我发现keydown事件无法捕获事件。相反,Ctrl+1
导致激活第一个 Chrome 选项卡,即使我调用 e.preventDefault()
.
所以chrome浏览器的优先级最高所以不会被拦截。如果我想让 Ctrl+1
热键像预期的那样,有什么解决办法吗?
document.addEventListener('keydown', function(e) {
if (e.ctrlKey && e.code === 'Digit1') {
// ...
e.preventDefault()
}
})
This thread 似乎有一个讨论可能会回答您的问题。
最简单的答案是使用 e.preventDefault(); e.stopPropagation()
。希望该帖子能回答您的问题。
document.addEventListener('keydown', function (e) {
console.log(e.keyCode)
if (e.ctrlKey && [49, 50, 51].includes(e.keyCode)) {
e.preventDefault()
console.log('hahahah')
}
})