1

簡単なリッチ テキスト編集を含む Windows ストア アプリ (HTML) を作成しています。起動するボタンを使用して、現在選択されているものに太字を適用できますdocument.execCommand("bold",false,null);

ただし、これを CTRL+B などのキーダウン イベントにバインドすると、何も起こりません。これが私のキーダウンコードです。

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

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

キーダウン コードが正常に動作することはわかっています。これは、document.execCommandを別のコード行に置き換えると、CTRL + B を押したときに正常に起動するためです。execCommand の keydown イベントに問題があるようです。

4

1 に答える 1

2

keydownの代わりにkeypressを使用すると、正常に動作することがわかりました。他の誰かが同じ問題を抱えている場合に備えて、それは回避策です。ただし、なぜ 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 に答える