Chrome DevToolsの要素で発生したイベントを表示するにはどうすればよいですか?


603

ライブラリのページにカスタマイズ可能なフォーム要素があります。使用するイベントハンドラーを見つけようとしているので、それとやり取りするときにどのJavaScriptイベントが発生するかを確認したいと思います。

Chrome Web Developerを使用してどうすればよいですか?


13
このブックマークレットは役に立ちます:sprymedia.co.uk/article/Visual+Event+2
scytale

1
ここでの答えは貴重ですが、上のブックマークレット^が実際に私の問題を解決したものです。sprymedia.co.uk/article/Visual+Event+2
Jazzy

回答:


878
  • ヒットF12して開発ツールを開く
  • [ソース]タブをクリックします
  • 右側で、[イベントリスナーブレークポイント]までスクロールし、ツリーを展開します。
  • 聞きたいイベントをクリックします。
  • ターゲット要素を操作します。ターゲット要素が起動すると、デバッガーにブレークポイントが表示されます

同様に、ターゲット要素を右クリックして、「要素の検査」を選択できます。開発フレームの右側を下にスクロールします。下部にあるのは「イベントリスナー」です。ツリーを展開して、要素に関連付けられているイベントを確認します。これがバブリングによって処理されるイベントで機能するかどうかはわかりません(私はそうではないと思います)


11
ブレークポイントがフローを
停止さ

67
すべてのイベントが私が気にしない縮小jqueryを指している場合、そのjqueryを使用する関数にどのように到達しますか?
Muhammad Umer 2014年

14
私が作成したカスタムイベントを表示できますか?私がそれを読んだとき、それが人生を変えたことを最初に考えました。私は何かを逃していますか?
Tebe

24
@MuhammadUmer jQueryをブラックボックス化して、Chromeがスキップしてソースコードに直接移動できるようにすることができます。developer.chrome.com/devtools/docs/blackboxing
Matt Zeunert、2016

1
@MuhammadUmer JQueryの使用を停止した場合はどうなりますか?
John Balvin Arias

831

monitorEvents関数を使用できます。

要素を確認し(right mouse clickInspect表示されている要素で→ またはElementsChromeデベロッパーツールのタブに移動して必要な要素を選択)、Consoleタブに移動して次のように記述します。

monitorEvents($0)

この要素の上にマウスを移動するか、要素にフォーカスまたはクリックすると、発生したイベントの名前とそのデータが表示されます。

このデータの取得を停止するには、これをコンソールに書き込むだけです。

unmonitorEvents($0)

$0Chromeデベロッパーツールによって選択された最後のDOM要素です。そこに他のDOMオブジェクトを渡すことができます(たとえば、getElementByIdまたはの結果querySelector)。

イベントの「タイプ」を2番目のパラメータとして指定して、監視対象のイベントを事前定義されたセットに絞り込むこともできます。例えば:

monitorEvents(document.body, 'mouse')

この利用可能なタイプのリストはここにあります

この機能がどのように機能するかを示す小さなgifを作成しました。

monitorEvents関数の使用法


2
同意した。これは、特定の要素のイベントを監視および追跡するための事実上の方法です。
dmackerman 2015

1
ああそうだ。私を怒らせていたのは「未定義」でしたが、役立つアニメーションGIFでも同じことがわかりました。ありがとう。
MSC

1
gifを作成するために使用したツール
JerryGoyal

3
@MariuszPawelskiここから先に進むには?これを実行して、興味のあるイベントであるクリックイベントを見つけました。しかし、要素をクリックしたときに何が起こるかを知るにはどうすればよいですか。どのようなコードが実行されますか?どのプロパティをMouseEvent検索する必要がありますか?
Utku、2016年

3
しかしハンドラーを見つける場所、例えばクリックハンドラー。
シェイクアブドゥルワヒド2017


22

jQuery(少なくともバージョン1.11.2)の場合、次の手順でうまくいきました。

  1. 要素を右クリックして「Chrome Developer Tools」を開きます
  2. タイプ$._data(($0), 'events');「コンソール」で
  3. アタッチされたオブジェクトを展開し、handler:値をダブルクリックします。
  4. これは、添付された関数のソースコードを示しています。[検索]タブを使用して、その一部を検索します。

そして、車輪の再発明をやめて、バニラJSイベントの使用を開始する時が来ました... :)

jquery-click-handler-functionを見つける方法


15

jqueryプラグインの場合、スクリプトが作成するようなカスタムイベントは表示されません。例えば ​​:

jQuery(function($){
 var ThingName="Something";

 $("body a").live('click', function(Event){
   var $this = $(Event.target);
       $this.trigger(ThingName + ":custom-event-one");
 });

 $.on(ThingName + ":custom-event-one", function(Event){
   console.log(ThingName, "Fired Custom Event: 1", Event);
 })

});

Chrome開発ツールのスクリプトの下にあるイベントパネルに「Something:custom-event-one」と表示されない


21
では、どのようにしてそれらのイベントを見つけるのでしょうか?
カリドン2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.