javascript - Chrome 扩展 : adding a keyboard shortcut with Alt with addEventListener ('keypress' )

标签 javascript google-chrome-extension keyboard-shortcuts

我正在做这个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 添加快捷方式(在 thisthis 之后)。这一次,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/

相关文章:

javascript - 使用 BrowserAction 设置背景图像

javascript - 页面加载/刷新时在后台运行扩展

keyboard-shortcuts - 谷歌搜索选项卡快捷方式不起作用

java - 在 Eclipse 中是否有向现有构造函数添加字段的快捷方式?

javascript - RadioButtonFor 加载页面后不调用 onchange

javascript - 使用 Javascript InsertAfter 长 HTML block

javascript - JS中的关键字WITH是什么意思?

javascript - 如何使用 facebook api 邀请用户加入 facebook 群组

mysql - 如何通过扩展程序在 Gmail 中创建新按钮/功能?

java - Vaadin 如何使用 AbstractField.FocusShortcut 中的速记符号将 &Address 转换为 Alt+A?