调试注入的内容脚本

时间:2012-01-07 05:28:56

标签: google-chrome-extension

我有很多代码,我只想在用户点击扩展程序图标时运行。我宁愿为每个打开的标签运行它。因此,使用清单文件中的content_scripts条目不是最佳选择。但是,当我以编程方式注入脚本时,我无法看到开发人员工具中的脚本列表中显示的内容脚本。我现在很好地开发内容脚本,但在某些时候我想避免使用它。

我在整个地方运行日志记录,并执行消息传递。所以我非常清楚这些脚本已成功注入并运行,但它们根本无法显示在文件列表中。

在代码中,以下工作只是花花公子(在清单中):

 {
   // ...
   "content_scripts": [{
      "matches": ["<all_urls>"],
      "css": ["style/content.css"],
      "js": [
       "closure/goog/base.js",
       "closure/goog/deps.js",
       "util.js",
       "AddressRE.js",
       // ...
       "makeRequests.js"
     ]
   }]
 }    

onClick后执行以下操作不会:

 function executeNextScript(tabId, files, callback) {
     chrome.tabs.executeScript(tabId, {
         file: files.pop()
     }, function () {
         if (files.length)
             executeNextScript(tabId, files, callback);
         else
             callback();
     });
 }    


 function executeScripts(tabId, callback) {
     var files = [
         "closure/goog/base.js",
         "closure/goog/deps.js",
         "util.js",
         // ...
         "makeRequests.js"
     ];
     executeNextScript(tabId, files.reverse(), callback);
 }

2 个答案:

答案 0 :(得分:2)

您可以使用debugger JavaScript关键字在代码中设置断点。

答案 1 :(得分:1)

我将//@ sourceURL=myscript.js添加到任何已注入的脚本中,并在注入后将其添加到源列表中