13

當我添加鼠標事件斷點時,devtools總是跳轉到擴展的JS中。如何在devtools中調試時禁用Chrome擴展JS?

有什麼辦法可以直接指向我的鼠標事件代碼?

+0

我認爲澄清可以在這裏幫助。 「指向我的鼠標事件代碼」是什麼意思? – ronme 2012-01-14 18:58:57

+1

@ronme假設我正在調試某個頁面的js,監聽所有mousedown事件,devtools會顯示在擴展的js代碼中註冊的mousedown處理程序。有什麼辦法直接在頁面的js中顯示mousedown處理程序嗎? – barcahead 2012-01-15 06:34:52

+0

在調試器中,您應該能夠選擇您正在查看的js文件。一旦你選擇了頁面的js文件,你應該可以在那裏設置一個斷點。這不行嗎? – ronme 2012-01-15 11:45:55

回答

0

首先你應該檢討如何調試Chrome擴展這裏的教程:

http://code.google.com/chrome/extensions/tut_debugging.html

如果有疑問,可以隨時直接使用debugger關鍵字在JavaScript代碼中要啓動調試器,像這樣:

element.addEventListener("mouseover", function() { 
    debugger; 
    // some JS handler code... 
}); 

取決於如果你的JS是彈出,背景頁,或在內容腳本,你需要確保你從右邊PL啓動開發工具高手。

一個彈出,你需要右鍵點擊擴展程序圖標和「審查彈出」,然後從JavaScript控制檯,你將需要運行location.reload(true)

對於背景頁面,你需要去擴展設置頁面,chrome://settings/extensions,打開開發人員模式,展開相關擴展程序並單擊後臺頁面鏈接。

內容腳本應該是可見的直接被加載到頁面上。

+3

他不問如何調試擴展。他在調試正常的webapps時,如何阻止調試器進入擴展。 – 2016-04-18 18:17:45

11

我認爲最簡單的方法是打開一個隱身窗口按Ctrl-Shift-N鍵)(或MAC Cmd的-Shift-N鍵)和調試在那裏,因爲那樣的話就沒有擴展加載(默認)。

我知道你這個問題的意思是:在調試的時候,做一些簡單的像暫停執行,你總能找到它分解成擴展的代碼,而不是當前網頁的代碼之一。

10

禁止禁用腳本(例如爲了避免副作用)的唯一方法是通過禁用擴展(例如,如果擴展未在隱身模式下啓用,則使用隱身模式)。

如果你不介意運行腳本,但想忽略擴展代碼,那麼你就可以使用腳本blackboxing feature of Chrome's devtools

如果你從來沒有開發的擴展和不感興趣,通過它加強,然後打開devtools的設置菜單,點擊Blackboxing,然後在「黑箱內容腳本」複選框:

如果您只想有選擇地忽略文件,則還可以右鍵單擊要忽略的文件源,然後單擊「Blackbox Script」上下文菜單選項。要移除圖案,請轉到如前所示的「Blackboxing」設置面板。