Chrome 扩展:使用 Alt 和 addEventListener('keypress') 添加键盘快捷键
Chrome extension: adding a keyboard shortcut with Alt with addEventListener('keypress')
我正在这样做 open source chrome extension 我想添加一个快捷方式,这样当扩展程序打开并且我按下 Alt+C
时,div 的内容就会被复制到我的剪贴板。
我可以通过简单的方式添加快捷方式 addEventListener
:
var inputText = document.getElementById('textareaSource');
inputText.addEventListener('keypress', function (e) {
if (e.keyCode == 99) {
// alert("You pressed C!");
}
});
但是显然这种添加快捷方式的方式不允许包含Alt
的快捷方式。我试过了,但没有收到任何警报:
if (e.altKey || e.ctrlKey || e.shiftKey)
alert("you pressed one of the 'Alt', 'Ctrl', or 'Shift' keys")
}
我还可以通过 manifest
/background.js
添加快捷方式(在 and this 之后)。这一次,Alt+C
起作用了,但它可以在 Chrome 上随处触发,而不仅仅是在我的扩展程序打开时触发。
有没有办法获得中间立场:添加包含 Alt
的快捷方式,该快捷方式仅在我的扩展程序打开时触发?
keypress
事件不会在按下修改键时触发,此外,现在已弃用。
正如它所说的 on the MDN, you should consider using keydown
事件,它支持您尝试过的方式。
event.keyCode
也已弃用,应改用 event.key
。
所以这段代码应该可以工作:
var inputText = document.getElementById('textareaSource');
inputText.addEventListener('keydown', function (e) {
if (e.key == "c" && e.altKey) {
// alert("You pressed Alt + C!");
}
});
我正在这样做 open source chrome extension 我想添加一个快捷方式,这样当扩展程序打开并且我按下 Alt+C
时,div 的内容就会被复制到我的剪贴板。
我可以通过简单的方式添加快捷方式 addEventListener
:
var inputText = document.getElementById('textareaSource');
inputText.addEventListener('keypress', function (e) {
if (e.keyCode == 99) {
// alert("You pressed C!");
}
});
但是显然这种添加快捷方式的方式不允许包含Alt
的快捷方式。我试过了,但没有收到任何警报:
if (e.altKey || e.ctrlKey || e.shiftKey)
alert("you pressed one of the 'Alt', 'Ctrl', or 'Shift' keys")
}
我还可以通过 manifest
/background.js
添加快捷方式(在 Alt+C
起作用了,但它可以在 Chrome 上随处触发,而不仅仅是在我的扩展程序打开时触发。
有没有办法获得中间立场:添加包含 Alt
的快捷方式,该快捷方式仅在我的扩展程序打开时触发?
keypress
事件不会在按下修改键时触发,此外,现在已弃用。
正如它所说的 on the MDN, you should consider using keydown
事件,它支持您尝试过的方式。
event.keyCode
也已弃用,应改用 event.key
。
所以这段代码应该可以工作:
var inputText = document.getElementById('textareaSource');
inputText.addEventListener('keydown', function (e) {
if (e.key == "c" && e.altKey) {
// alert("You pressed Alt + C!");
}
});