【问题标题】:Debugging injected content scripts调试注入的内容脚本
【发布时间】:2013-12-07 20:10:36
【问题描述】:

我有很多代码只想在用户单击扩展图标时运行。我宁愿为每个打开的标签运行它。因此,在清单文件中使用 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);
 }

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2012-01-25
        • 2015-04-06
        • 1970-01-01
        • 1970-01-01
        • 2013-06-11
        • 1970-01-01
        • 2012-11-03
        • 1970-01-01
        相关资源
        最近更新 更多