为了账号安全,请及时绑定邮箱和手机立即绑定

Chrome 扩展程序:使用 Alt 与 addEventListener('keypress')

Chrome 扩展程序:使用 Alt 与 addEventListener('keypress')

喵喵时光机 2021-09-30 15:23:44
我正在做这个开源 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!");

        }

});


查看完整回答
反对 回复 2021-09-30
  • 1 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号