簡體   English   中英

Chrome 擴展程序:使用 Alt 與 addEventListener('keypress') 添加鍵盤快捷鍵

[英]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添加快捷方式(在thisthis 之后)。 這一次, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM