仅加载第一个内容脚本

时间:2011-06-03 15:51:20

标签: google-chrome-extension

我正在尝试构建我的第一个chrome扩展,我遇到的问题是只加载了第一个内容脚本。这是我在manifest.json

中定义的
 "content_scripts": [
    {
        "matches": ["http://www.facebook.com/connect/login_success.html*"],
        "js": ["prototype.js", "intercept.js"]
    }]
}

当我看到此页面上加载的脚本时,

http://www.facebook.com/connect/login_success.html#access_token=207C2.AQA7ebNZjXPXR8qe.3600.1307120400.1-522955158%7CCqISyuCN9QDzzIeG4rYIKW4sIvI&expires_in=4297

我看到只加载了prototype.js.有什么想法吗?

1 个答案:

答案 0 :(得分:2)

实际上,抓住这一切。我现在开始工作了,结果没有明显变化。但是,当您注入脚本时,不应该能够在DOM IIRC中看到它。您是否有可能只是一个导致它无法渲染的流浪错字?您可能想在其他页面上测试它。

除非Chrome推出了一些固定内容(可能)的随机更新,否则我认为它可能只与intercept.js有关。

尽管如此,我仍然会因为使用严格的文档类型而无法仅使用一个单词来验证Facebook。

初步回答(保留只是为了表明我的困惑)

我能够用最简单的脚本复制你的结果,我在其他页面上工作。这个问题可能与doctype,XHTML Strict以及尽管页面设法只包含一个单词的事实有关 - doesn't validate。我尝试了几种处理它的方法:

  • 在manifest.json
  • 中将content_scripts.run_at更改为"document_end"
  • 使用chrome.tabs.executeScript注入脚本
  • 使用chrome.tabs.executeScript注入纯代码
  • 使用chrome.tabs.executeScript注入包含CDATA标记中包含的代码的脚本
  • 使用chrome.tabs.executeScript注入CDATA标记中包含的纯代码

没有工作。