1

Chrome をターゲットにして、JavaScript でコードを書いています。

ここで、次の場合に何が起こるかを考えてみましょう。

  • Web ページで Space/Backspace を押したのに対して
  • テキストボックスでスペース/バックスペースを押します

(goog.events.listen js/document.body ...) を使用して、Space/Baskspace イベントをリッスンし、それらに反応することができます。ただし、ブラウズは引き続きそれらを処理します。たとえば、Space を押すとブラウザは下にスクロールし、Basckspace を押すとブラウザは前の Web ページに移動します。

この「デフォルトの動作」を防止したいと考えています。つまり、Space/Backspace イベントを処理したいのですが、ブラウザにそれらを無視させたいのです。

ありがとう!

4

1 に答える 1

2

イベント ハンドラーから false を返して、イベントをキャンセルします。

document.body.onkeydown = function killSpace(e) {
    if (e.keyCode === 32) {
        return false;
    }
};

このようにキーボード ショートカットをグローバルに強制終了しないでください。使い勝手が悪いです。ページ上の一部のカスタム ウィジェットにフォーカスがあり、この要素がタブなどのキーボード ショートカットを使用してフォーカスを失う可能性がある場合にのみ、デフォルトの動作を防止します。

于 2012-10-13T19:57:34.850 に答える