[英]Chrome extension: adding a keyboard shortcut with Alt with addEventListener('keypress')
我正在做這個開源 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
的快捷方式,該快捷方式僅在我的擴展程序打開時觸發?
keypress
修飾鍵時不會觸發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!");
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.