1


1

JavaScriptでキーイベントをキャッチする関数を見つけますか?

複雑なWebアプリのユーザースクリプトを書いています。 既存のコードは、「j」および「k」キーダウンイベントをキャッチしています。

この関数を見つけて、何をしているのかを確認したいと思います。 ドキュメント内のすべての主要なイベントハンドラをリストする方法はありますか? または、Chrome Developer Toolsで文字を押すときにブレークポイントを設定する方法はありますか?

2 Answer


5


はい、開発者ツールで、Scripts_タブに移動し、ページを選択して、_Event Listener Breakpoints _、 Keyboard keydown_に移動します。

image:https://i.stack.imgur.com/RpnwR.png [ここに画像の説明を入力]

これは必ずしもあなたを大いに助けるとは限りませんが、例えば スクリプトが縮小されているか、ライブラリを使用している場合。 しかし、試してみることができます。


1


スクリプトの一部を最初に実行でき、キーがドキュメントレベルで処理される場合、このインターセプトをインストールして、コードのどの部分がキーボードハンドラーを設定しているかを確認できます。

var oldListener = document.addEventListener;
document.addEventListener = function(type, listener, capture) {
    if (type == "keydown" || type == "keyup" || type == "keypress") {
        console.log("type=" + type + " listener=" + listener.toString().slice(0, 80));
    }
    return (oldListener.apply(this, arguments));
}