1

對我來說,這很愚蠢錯位一個括號/大括號並導致整個內容腳本不能加載。發生這種情況時,任何地方都沒有錯誤 - 控制檯是空的。這發生在content.js直接Chrome擴展和crossrider的extension.js(也在Chrome中)。意識到結果,我知道我的文件中的某個地方是錯誤的,但是手動查找它只是一種愚蠢愚蠢的調試方式。我發現來縮小問題的唯一辦法是...Chrome擴展程序內容腳本無法加載,因此沒有錯誤。沒有。甚至沒有一個

  1. 創建一個臨時的HTML文件,直接包含內容腳本,等待要顯示的甜蜜行號。

  2. 將文件上傳到crossrider的Web界面,並讓其JS解析器向我顯示錯誤行。

以上是緩慢和繁瑣的,需要帶着霰彈槍在棚子後面取出。

我可以在哪裏鉻告訴我有與內容腳本問題,哪一行,甚至我只是缺少哪種類型的支架?

+1

它不直接回答你的問題(但是,這是一個很棒的建議):使用JS linting支持的編輯器。 (例如,爲您正在使用的編輯器尋找一個JSHint插件 - 或者如果它不支持這樣的東西,請使用更復​​雜的編輯器。) – gkalpak

+0

+1支持編輯器。通過及早發現錯誤,它將爲您節省大量時間。就我個人而言,我正在使用由[jshint](https://github.com/jshint/jshint)支持的[syntastic vim插件](https://github.com/scrooloose/syntastic)。 –

回答

0

在您的內容腳本中,在腳本的開頭處添加行debugger;。錯誤消息打印在腳本注入的網頁的JavaScript控制檯上。因此,如果您的內容腳本在abcd.html上運行,請打開abcd.html,然後打開這個頁面的Javascript控制檯。然後觸發什麼,那就是你的運行內容腳本 - 點擊按鈕等

編輯: 如果你的腳本是在background.html運行,然後趕在腳本解析錯誤,

  1. 打開擴展頁面在鉻。
  2. 確保開發者模式已啓用。
  3. 加載解壓後的擴展。
  4. 通過單擊左側的擴展頁面上的箭頭來展開您的擴展。請點擊background.html
  5. 打開頁面。如果內容腳本中存在錯誤,則會在控制檯中顯示錯誤消息和行號,並且無法打開background.html頁面。
+0

謝謝,如果js文件正確解析並達到它*可*運行的地步,並且命中該行,'debugger'將很有效。由於缺少括號,js文件被完全破壞。腳本不解析並且「調試器」不起作用(即使它是文件中的第一個細節)。 – jozxyqk

+0

檢測到甚至解析錯誤。例如,我剛剛得到這個「Uncaught SyntaxError:意外的輸入menuitem.js結束:100」。我刪除了腳本中的右大括號並取得了該結果。您必須在目標頁面上打開開發人員工具。或者,如果您由於某種原因無法工作,請使用http://jslint.com/ –

+0

對於background.html,您必須從Extensions頁面手動打開背景頁面。檢查答案。 –

相關問題