喵喵時(shí)光機(jī)
2021-09-30 15:23:44
我正在做這個(gè)開(kāi)源 chrome 擴(kuò)展,我想添加一個(gè)快捷方式,這樣當(dāng)擴(kuò)展打開(kāi)時(shí)我按下Alt+C,然后將 div 的內(nèi)容復(fù)制到我的剪貼板。我可以用一個(gè)簡(jiǎn)單的方法添加快捷方式addEventListener:var inputText = document.getElementById('textareaSource'); inputText.addEventListener('keypress', function (e) { if (e.keyCode == 99) { // alert("You pressed C!"); }});但顯然這種添加快捷方式的方式不允許包含Alt. 我試過(guò)這個(gè),但我沒(méi)有收到任何警報(bào):if (e.altKey || e.ctrlKey || e.shiftKey) alert("you pressed one of the 'Alt', 'Ctrl', or 'Shift' keys")}我還可以通過(guò)manifest/添加快捷方式background.js(在this和this 之后)。這一次,Alt+C工作正常,但它可以在 Chrome 上的任何地方觸發(fā),而不僅僅是在我的擴(kuò)展程序打開(kāi)時(shí)。有沒(méi)有辦法獲得中間立場(chǎng):添加一個(gè)包含Alt僅在我的擴(kuò)展程序打開(kāi)時(shí)觸發(fā)的快捷方式?
1 回答

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
keypress按下修飾鍵時(shí)不會(huì)觸發(fā)該事件,此外,現(xiàn)在已棄用。
正如MDN 上所說(shuō),您應(yīng)該考慮改用keydown事件,它支持您嘗試過(guò)的方式。
event.keyCode也已棄用,event.key應(yīng)改為使用。
所以這段代碼應(yīng)該可以工作:
var inputText = document.getElementById('textareaSource');
inputText.addEventListener('keydown', function (e) {
if (e.key == "c" && e.altKey) {
// alert("You pressed Alt + C!");
}
});
添加回答
舉報(bào)
0/150
提交
取消