我有一個庫,可以即時創建編輯器(http://epiceditor.com),並自動設置鍵快捷方式。快捷鍵可以在選項中進行配置,所以我不能使用e.altKey
,e.ctrlKey
等。Stuck alt /修飾鍵與javascript
由於某些原因,修改鍵未在Mac/Ubuntu瀏覽器上設置回false
有時。
在Windows上,它似乎每次都會發生。您可以通過單擊JSBin中的渲染然後按alt + p來重現此操作。你應該看到「Yay」出現。現在,如果在Windows上再按只需 p。你會看到耶再次出現。 Mac和Ubuntu用戶偶爾會看到同樣的問題,但很難重現。
另外請注意,這隻發生在alt鍵似乎。下面我在16(alt)旁邊有16個(換班)。如果你交換出來,它會按預期工作。
爲精簡測試用例的代碼是:
var modKey = false;
var modKeyCode = 18; //16
document.body.addEventListener('keydown', function (e) {
if (!modKey && modKeyCode == e.keyCode) {
modKey = true;
}
if (modKey && e.keyCode == 80) {
console.log('Yay!');
}
});
document.body.addEventListener('keyup', function (e) {
if (modKey && modKeyCode == e.keyCode) {
modKey = false;
}
});
演示:http://jsbin.com/uhupah/3/edit#javascript,html
同樣的問題:http://jsbin.com/uhupah/4/edit - 如果我把所有的代碼移動到keydown。 Windows的問題更多的是Linux或OS X,因爲這些發生的頻率較低。 –
@OscarGodson哇!不能始終如一地重現錯誤確實難以解決。希望你的解決方案足以滿足你的需求。 – ddtpoison777