簡體   English   中英

告訴Firebug在任何Javascript被執行后很快就會破壞

[英]Telling Firebug to Break as Soon as any Javascript is Executed

當我點擊一些<button>元素時,我繼承了一堆做出意想不到的事情的代碼。

該頁面有很多Javascript,並且不清楚在按鈕或其父元素上設置了什么(如果有的話)事件。 我正在嘗試找到執行開始的地方,以便我可以調試正在進行的操作。

有沒有辦法讓Firebug(或任何Javascript調試器)在執行任何 javascript代碼時中斷? 也許某種程度上以編程方式在每一行上設置一個斷點? 或者是否有其他方法可以找出按鈕響應的事件(頁面用戶boh Prototype,jQuery和一些自定義Javascript。我知道。)

只需按下firebug面板上的Pause按鈕(在它的左上角,兩條黃色垂直線,當選擇Script選項卡時) - 它將在第一個JS字符串處停止。

但它會阻止JS在任何事件中執行 - 所以如果你有一個抓住鼠標移動和鼠標點擊的按鈕 - 我將無法在鼠標點擊停止,因為每次你試圖移動鼠標移動時腳本都會停止將鼠標懸停在此按鈕上 我建議你只是在可疑的地方插入alert() - 經過一些迭代后你會發現你需要的確切字符串(發生錯誤的地方)。

關閉Internet瀏覽器並再次打開它。 “打破下一步”將再次開始工作。 否則Firebug會在一段時間后忽略此選項,並且不會中斷,但會在沒有警告的情況下為所有事件運行javascripts。

我發現了一個書簽,它將列出頁面中的所有綁定事件

如果您不知道哪些事件受第三方代碼約束,則此類很有用。

如果您想查看頁面上設置的事件,您也可以嘗試使用Eventbug

如果這是一般調試問題,您可以使用Safari / Chrome中的Web Inspector。 另外一個好處是,您可以將以下語句放入JavaScript代碼中以調出調試器:

...
debugger; // Will trigger the debugger
...

否則,您可以設置斷點,條件斷點,下次執行時暫停以及所有常用技巧。 這里有一些不錯的視頻。

響應之前的alert建議。 如果您有權訪問調試器,我會認真推薦使用console.logconsole.dir 您將獲得更多信息,而不會阻止腳本的執行。 另外,不要忘記console.log可以使用多個參數,這樣您就可以很好地打印出數據,您不必將自己限制在像alert這樣的單個字符串中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM