Chromium扩展:javascript未执行

时间:2012-05-29 08:19:49

标签: google-chrome

制作一个简单的插件,在加载页面时执行javascript,我想在不同的页面上执行不同的javascript

但是下面的代码没有按预期工作,没有触发“警报”:

background.html

<html><body>
<script>
chrome.webRequest.onCompleted.addListener(
  function(details) {
    alert (details.url);
  },
  {
      urls: ["*"],
      types: ["main_frame"]
  },
  []
);
</script>
</body></html>

manifest.json

{
  "name": "JS",
  "background_page": "background.html",
  "permissions": [
    "webRequest",
    "*"
  ],
  "version":"0.10"
}

1 个答案:

答案 0 :(得分:1)

从扩展程序的后台页面制作的警报和console.log在常规页面上不可见。

如果您想看到它们,则必须打开背景页面:转到扩展程序设置页面(菜单工具/扩展程序),然后点击扩展程序名称下方的“background.html”链接。

在您的情况下,在开发阶段,可以更好地在内容脚本(即不是后台页面)中添加console.log和警报。所以你可以在不打开背景页面的情况下阅读它们。

编辑:根据要求,一个只会提醒该位置的扩展名:

main.js:

alert(document.location.href);

manifest.json:

{
    "name": "Any name",
    "version": "3.3",
    "background_page": "background.html",
    "content_scripts": [
        {
            "matches": ["http://*/*"],
            "all_frames" : true,
            "run_at" : "document_end",
            "js": [
                "main.js"
            ]
        }
    ]
}

是的我测试了它。是的,它听起来很痛苦。您应该在开发期间使用console.log代替alert