0

制作一个简单的插件,在页面加载时执行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"
}
4

1 回答 1

1

从扩展的背景页面生成的警报和 console.log 在常规页面上根本不可见。

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

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

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

主.js:

alert(document.location.href);

清单.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

于 2012-05-29T08:24:54.670 回答