我正在做这个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
添加快捷方式(在 this 和 this 之后)。这一次,Alt+C
起作用了,但它可以在 Chrome 上随处触发,而不仅仅是在我的扩展程序打开时触发。
有没有办法获得中间立场:添加一个包含 Alt
的快捷方式,该快捷方式仅在我的扩展程序打开时触发?
最佳答案
keypress
事件不会在修饰键被按下时触发,此外,现在它已被弃用。
如其所说on the MDN , 你应该考虑使用 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!");
}
});
关于javascript - Chrome 扩展 : adding a keyboard shortcut with Alt with addEventListener ('keypress' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57731762/