Chrome扩展程序针对特定页面运行

问题描述 投票:39回答:1

我正在编写一个简单的Chrome扩展程序,该扩展程序显示一个JavaScript警报,提示“ Hello World”。在此示例中,我指定了该扩展名仅在google.com上运行(将其放入manifest.json的权限属性中)。

即使目标页面中的所有内容都已加载,也不会显示警报。到目前为止,这是我的脚本:

文件:manifest.json

{
  "name": "Hello",
  "version": "1.0",
  "description": "Says hello to Google",
  "permissions": ["http://*.google.com/"]
  "browser_action": {
    "popup": "Hello.html"
  }
}

文件:Hello.html

<script language="Javascript">
   alert("Hello World");
</script>
google-chrome-extension
1个回答
59
投票

您正在添加浏览器操作弹出窗口,该弹出窗口在浏览器的右上角添加了一个按钮。 (它可能是不可见的,因为您尚未为其指定图像。地址栏的右边应该有一些空白;尝试单击它以在弹出窗口中查看Hello.html。)

您想要的是content script。内容脚本可以注入到Chrome加载的每个页面中。您可以使用清单文件中的matchesexclude_matches子项来指定哪些页面获取了注入的脚本。

{
  "name": "Hello",
  "version": "1.0",
  "description": "Says hello to Google",
  "permissions": ["tabs", "*://*.google.com/*"],
  "content_scripts": [
    {
      "matches": ["*://*.google.com/*"],
      "js": ["hello.js"]
    }
  ]
}

确保将Hello.html重命名为hello.js(并摆脱<script>标签)。

还请注意,我将您的http://*.google.com/更改为*://*.google.com/*,以便它将通过HTTP和HTTPS应用于Google(尾随的*确保它将应用于google.com上的所有页面,而不仅是主页面)页)。

© www.soinside.com 2019 - 2024. All rights reserved.