我正在做这个开源 chrome 扩展,我想添加一个快捷方式,这样当扩展打开时我按下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仅在我的扩展程序打开时触发的快捷方式?
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
keypress按下修饰键时不会触发该事件,此外,现在已弃用。
正如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!");
}
});
添加回答
举报
0/150
提交
取消
