2013-04-20 27 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

相关问题