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'…对不起,我应该选中这个。非常感谢你的耐心!