我正在编写一个简单的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>
您正在添加浏览器操作弹出窗口,该弹出窗口在浏览器的右上角添加了一个按钮。 (它可能是不可见的,因为您尚未为其指定图像。地址栏的右边应该有一些空白;尝试单击它以在弹出窗口中查看Hello.html
。)
您想要的是content script。内容脚本可以注入到Chrome加载的每个页面中。您可以使用清单文件中的matches
和exclude_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
上的所有页面,而不仅是主页面)页)。