2010-11-30 4 views
10

特定のDOMノードにどのイベントハンドラが接続されているかを調べる方法はありますか?DOMノードにどのイベントハンドラが接続されていますか?

たとえば、[コメントを追加]リンクをクリックすると、コメントフォームが表示されたイベントハンドラがアタッチされます。今、DOM文書(Webページ)があり、特定のノードのすべてのイベントハンドラをリストしたい場合、これを行う方法はありますか?あなたが選択した場合添付イベントリスナーを表示することができます

+0

この質問を見てください:http://stackoverflow.com/questions/446892/how-to-find-event-listeners-on-a-dom-node – McStretch

+0

@McStretch:役に立つ、ありがとう。以前はこれを見つけられませんでしたが、重複してこれを閉じるように投票しました。 – Piskvor

答えて

10

クロム(と私はサファリを疑う);

は(このデータにアクセスすることがFFでブラウザ拡張を行う?私はそれはJSがページ内で実行されていることは不可能だと思われます)要素を右クリックし、右側のサイドバーをスクロールして[イベントリスナー]セクションに移動します。そこには、どの機能が接続されているかがわかります。

私は現時点でFirebugのコピーを持っていませんが、Firefoxでも同様の情報を表示するDOMタブがあると思われます。 Chromeの場合

+0

確かにありがとうございます(Chromeでは、FBug 1.6にはありません)。 – Piskvor

+1

@Piskvor:Firebugには同様の機能を提供する[Eventbug](http://www.softwareishard.com/blog/firebug/eventbug-alpha-rele/)という拡張子があります。 –

+0

@Erik Hesselink:ありがとう、それは便利に見える! – Piskvor

1

  1. あなたが開発者向けツールの「要素」タブでおよそ
  2. を知りたい要素の「要素を点検」、右側のペインで、イベント・リスナー」をクリックしてください"

これは、その要素にどのイベントハンドラが接続されているかを示します。

(Krofの答えがより明確に書かれている可能性があります。)

8

Chromeの場合、あなたはgetEventListenersを使用することができます。 getEventListeners($0)

  • ヒット入力します。

    1. オープン開発ツール
    2. は、あなたがこのコンソールは
    3. タイプに興味を持っている要素を選択します。

    オブジェクトのイベント名をハンドラにマッピングするオブジェクトを返す必要があります。 $0special dev tools variableであり、常に「要素」タブで最後に選択された要素を指しています。

  • +0

    イベントリスナータブの表示と異なる応答です。どうして? – UserControl

    +0

    うーん、それは良い質問です。何も思いつきません。 – Xavi

    関連する問題