2010-04-13 16 views
18

Firebug是否可以通過按下按鈕或鍵盤快捷鍵來停止javascript,而不是通過設置斷點來停止它?有沒有可能使用Firebug停止JavaScript而不使用斷點?

爲什麼我會喜歡這樣做? 我們有一個非常動態的網站,有很多動畫。如果我可以在動畫正在執行某些我想檢查的內容時停止腳本,那將非常有幫助。 這比用斷點擺弄要快得多。

回答

4

Firebug中有一個暫停按鈕。點擊這是你正在尋找。

+3

暫停按鈕被標記爲「中斷所有錯誤?」這不是那種工作方式。 – 2010-04-13 21:14:50

+0

@matt,至少它可以快速分析。解決方案對我來說已經足夠了。 +1 – Mateng 2013-02-15 15:23:58

1

根據您使用的動畫庫,可能會出現「停止所有動畫」的方法 - 例如,jQuery's .stop()。你如何處理動畫?

2

如果你知道它在做什麼你想要檢查的地方,那麼斷點有什麼問題?此外,您可以在代碼中使用調試器關鍵字,也可以在代碼中注入console.log/debug/warn/info語句。 (您可以爲那些沒有環境的環境留出控制檯對象)。

0

解決此問題的最佳方法是轉到HTML下拉菜單,它位於螢火蟲的HTML標籤旁邊。取消選擇「突出顯示更改」和「滾動更改以查看」,這應該允許您檢查正在執行的html和css代碼。我希望你們想這樣做。

7

這是我做到了,從Web控制檯(未暫存器),運行:

window.addEventListener("keydown", function() {debugger;}) 

然後返回到調試器選項卡。當您關注文檔並按下某個鍵時,瀏覽器將暫停JS。

+0

這很好,趕上快速ajax事件... – Nikit 2015-11-16 08:51:03

+0

呃,很好: -/...順便說一句,它只是JavaScript,所以它可以在很多方面使用(注入),不只是從控制檯,對吧?謝謝。 – erm3nda 2016-11-24 06:29:06

+0

當然,但您必須與文檔處於相同的JavaScript上下文中,這就是爲什麼暫存器不起作用。儘管你可以將它包含在文檔本身的javascript中。 – Eric 2016-11-24 13:35:47

-1

最簡單的方法是安裝firefox擴展「PrefBar」。在那裏你可以添加一個複選框「JavaScript」。如果你停用它,JavaScript停止。

+0

那麼......你怎麼能夠安裝Firefox擴展,但無法閱讀和理解問題......? :-)。停止意味着運行然後停止,而不是「停用」。提問者的目標是能夠按需暫停,而不設置斷點:-) – erm3nda 2016-11-24 06:27:13

1

如果您使用web開發者插件,您可以禁用所有在腳本中運行的java腳本,然後根據需要使用firebug。

+0

Wow.'http://chrispederick.com/work/web-developer/'現在我可以用我的JS代碼進行故障診斷沉重的CSS更新,看看究竟發生了什麼。本頁面上的大多數其他解決方案都無法讓我到達那裏。當腳本中的JS「暫停」時,您無法檢查CSS。 @Marty thx。 – zipzit 2014-06-19 18:09:33

+0

這不會停止當前頁面的腳本執行。它只會禁用下一頁上的JavaScript重新加載,這無助於檢查特定點上的動畫。 – 2016-05-13 06:53:38

0

如果網站不斷從您的服務器重新加載內容,則可以切換到「網絡」窗格。這裏的上下文菜單有一個「Break on XHR」條目,當它被選中時,它會在你嘗試獲取新內容時停止你的腳本。

3

Firebug具有不同的方法來停止腳本執行,而無需在特定行設置斷點。這些選項被稱爲Break On features

在你的情況下,我看到兩個相關的選項:

  1. 打破的JavaScript上的下一個執行的行
    腳本面板上有一個打破接下來按鈕(*Break On Next* button),其允許您在下一個執行的JavaScript語句中停止腳本執行。此功能也可以通過鍵盤快捷鍵啓用Ctrl + Alt + B

    所以,只要在動畫處於想要檢查的位置時點擊鍵盤快捷鍵即可。

  2. 歇在HTML突變
    HTML面板上有一個打破變異按鈕(*Break On Mutate* button),它允許你停止在接下來的HTML突變腳本執行。
    還有更多細粒度的選項可停止特定元素的變化,這些元素可在元素的上下文菜單中使用。這些選項是:

    • 打破屬性更改:停止在元素的屬性添加,更改或刪除腳本的執行。
    • 打破兒童添加或刪除:添加或刪除子節點時停止腳本執行。
    • 元件拆卸中斷:當元件本身被移除時停止腳本執行。

    在你的情況打破屬性更改可能的情況下,動畫改變元素的style屬性中的CSS正確的選擇。

+0

謝謝你的選擇,我會盡我所能找到我想要的方式。我必須調試幾個JavaScript腳本,並想知道我會遭受多少:-)謝謝。 – erm3nda 2016-11-24 06:31:04

+0

請注意,這些選項僅適用於Firebug,[Firebug的開發不幸停止支持Firefox DevTools](https://blog.getfirebug.com/2016/06/07/unifying-firebug-firefox-devtools/) )(Firebug的[*腳本*面板在Firefox 50中已損壞](http://stackoverflow.com/a/40748127/432681))。儘管DevTools仍然缺少第二個選項(突破HTML突變)。此功能在[bug 1004678](https://bugzilla.mozilla.org/show_bug.cgi?id=1004678)中請求。 – 2016-11-24 16:41:38

相關問題