2013-04-20 26 views
0

我在寫一個包含一些簡單的富文本編輯的Windows應用商店應用(HTML)。我可以將粗體應用到當前選定的使用按鈕,它會觸發document.execCommand("bold",false,null);在Windows應用商店應用中的keydown事件中調用execCommand時不會觸發

但是,當我將它綁定到像CTRL + B這樣的keydown事件時,什麼都不會發生。這是我的keydown代碼。

document.addEventListener("keydown", catchShortCuts, false); 

function catchShortCuts(e) { 
    if (e.ctrlKey) { 
     if (e.keyCode == 66) // b 
      document.execCommand('bold', true, null); 
     } 
    } 
} 

我知道我的keydown代碼工作正常,因爲如果我有另一行代碼,當我按CTRL + B它觸發就好更換document.execCommand。看起來execCommand與keydown事件有關係嗎?

回答

1

原來,如果您使用按鍵而不是keydown,它工作正常。以防其他人有相同的問題,這是一個解決方法。仍然不確定爲什麼onkeydown不起作用。

工作代碼:

document.addEventListener("keypress", catchShortCuts, false); 

function catchShortCuts(e) { 
    if (e.ctrlKey) { 
     if (e.keyCode == 66) // b 
      document.execCommand('bold', true, null); 
     } 
    } 
} 
+0

更奇怪的是,按鍵捕獲CTRL。 – Andy59469 2017-01-23 21:26:31

+0

爲什麼那麼奇怪? keydown也是如此 – roryok 2017-01-24 14:01:00

相關問題