1

我正在编写一个 Windows 商店应用程序 (HTML),其中包括一些简单的富文本编辑。我可以使用触发的按钮将粗体应用于当前选择的document.execCommand("bold",false,null);

但是,当我将它绑定到 CTRL+B 之类的 keydown 事件时,什么也没有发生。这是我的按键代码。

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

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

我知道我的 keydown 代码工作正常,因为如果我document.execCommand用另一行代码替换它,当我按下 CTRL+B 时它会很好地触发。好像 execCommand 的 keydown 事件有问题?

4

1 回答 1

2

事实证明,如果您使用keypress而不是keydown ,它可以正常工作。以防万一其他人有同样的问题,这是一种解决方法。仍然不确定为什么 onkeydown 不起作用。

工作代码:

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

function catchShortCuts(e) {
    if (e.ctrlKey) {
        if (e.keyCode == 66) // b
            document.execCommand('bold', true, null);
        }
    }
}
于 2013-04-20T10:32:32.270 回答