2012-02-03 36 views
51

我有~100-200 javascript函數加載在一個網站上。 我想確定在Google Chrome中單擊一個或另一個項目時執行的JavaScript功能。 我如何使用Chrome網頁開發人員工具執行此操作? 謝謝!Chrome中的Javascript執行跟蹤 - 如何?

回答

64

一種簡單的方法是啓動Chrome開發者工具,切換到Sources面板並點擊F8(暫停執行)。這將在第一個執行的JavaScript語句中打破。

另一種方法是爲mousedown設置事件偵聽器斷點,或單擊:在同一個「源」面板中,展開右側邊欄中的「事件偵聽器斷點」。展開「鼠標」項並檢查您想要打破的事件(例如「點擊」,「ousedown」)。然後點擊你的頁面,在DevTools中看到JS執行中斷。請享用!

+0

thx很多!如果我在FCKeditor中選擇文本,「鼠標左鍵單擊」,將鼠標移動到另一個地方並釋放,應該捕獲什麼鼠標事件。可能是 – Pave 2012-02-03 10:50:32

+0

「mouseup」。不過,不熟悉FCKeditor。 – 2012-02-03 11:47:28

+0

我試過了,但是......還沒有工作......我會試試自己。謝謝! – Pave 2012-02-03 13:37:57

14

我想確定當我點擊Google Chrome中的一個項目或另一個項目時執行的JavaScript函數。

現在有一個很好的擴展名爲Visual Event,正是這樣做。它只識別通過流行的js庫(jQuery,YUI,MooTools,Prototype,Glow)和DOM Level 0事件設置的事件處理程序。

+0

工作正常。不確定安全性,所以在我不調試的時候離開。 – MagicLAMP 2017-05-17 00:15:20

17

以暫停執行(這通常的偉大工程,但不會對網頁以及工作中經常定期執行代碼)

您可以使用Chrome的探查器來記錄的短時間內的替代品。完成錄製後,它會顯示在錄製過程中執行的任何功能花費的CPU時間的摘要。我們並不關心CPU時間,只是使用這個工具,因爲它會告訴我們哪些函數被執行。

基本上只是開始錄音:

chrome profiler start button

然後做你的動作(例如,點擊網頁上的按鈕,或做任何將導致有趣的代碼執行)。然後停止錄音並查看結果:

profiler result summary

通知我使用「自上而下」的觀看模式 - 它會顯示調用堆棧,並且可以向下鑽取,看看哪些功能最終得到調用。例如,首先調用一些匿名函數(可能是因爲setTimeout或可能是一些點擊事件處理程序),然後它調用一些由s.track.s.t標識的方法,然後調用s_doPlugins等......重要的是,在頂部在樹形頂部的條目形成一個調用堆棧的開始,因此它們通常是由某個定時器函數(setTimeout,setInterval,​​等)或一些事件處理程序(clickmousemoveload等)。

您還可以使用「圖表」查看模式,該模式顯示您在哪個時間調用哪個函數,從左到右繪製在圖表上。這可以幫助您識別您真正需要的功能,因爲您可能對代碼在記錄中執行的時間(例如,正確的中間位置)有所瞭解。

順便說一句 - 我相信大多數其他現代瀏覽器有類似的能力。