Javascript Chrome扩展:使用Alt和addEventListener(';按键';)添加键盘快捷键

Javascript Chrome扩展:使用Alt和addEventListener(';按键';)添加键盘快捷键,javascript,google-chrome-extension,keyboard-shortcuts,Javascript,Google Chrome Extension,Keyboard Shortcuts,我正在这样做,我想添加一个快捷方式,这样当扩展打开时,我按下Alt+C,div的内容就会复制到我的剪贴板上 我可以使用简单的addEventListener添加快捷方式: var inputText = document.getElementById('textareaSource'); inputText.addEventListener('keypress', function (e) { if (e.keyCode == 99) {

我正在这样做,我想添加一个快捷方式,这样当扩展打开时,我按下
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
事件不会触发,此外,现在它已被弃用

正如你所说的,你应该考虑使用事件来代替你尝试的方式。

event.keyCode
也不推荐使用,应改用
event.key

因此,该代码应该可以工作:

var inputText=document.getElementById('textareaSource');
inputText.addEventListener('keydown',函数(e){
如果(e.key==“c”&&e.altKey){
//警报(“您按下了Alt+C!”);
}
});

keypress
用于生成未修改字母或数字的事件,因此您很可能需要
keydown
。非常感谢。最后一个问题:如何捕捉
Alt+Enter
?它不适用于
keydown
@MagTun我注意到
event.keyCode
也被弃用,所以我已经替换了它…抱歉,我不够清楚:我尝试了这个
if(e.key==13&&e.altKey)
使用
keydown
来捕获
Alt+Enter
,但它不起作用
e.key
返回一个字符串而不是字符代码,因此您应该尝试e.key===='Enter'…对不起,我应该选中这个。非常感谢你的耐心!