我尝试根据示例构建简单扩展:
from here 和here
我必须在这里做错事。
我想要的只是在每个加载页面上开始(或者在加载之前甚至更好)它将弹出
你好警报
的manifest.json
{
"background": {
"page": "background.html"
},
"content_scripts": [
{
"matches": ["http://*/*","https://*/*"],
"js": ["jquery-1.8.2.min.js","contentscript.js"],
"run_at": "document_end"
}
],
"web_accessible_resources": [
"script_inpage.js"
],
"browser_action": {
"default_popup": "popup.html",
"default_title": "Test 123"
},
"content_security_policy": "script-src 'self'; media-src *; object-src 'self'",
"description": "Simple Test 123.",
"manifest_version": 2,
"minimum_chrome_version": "18",
"name": "Test 123",
"permissions": [
"unlimitedStorage",
"http://*/",
"tabs",
],
"version": "2.6"
}
background.html目前为空
contentscript.js:
var s = document.createElement('script');
s.src = chrome.extension.getURL('script_inpage.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
s.parentNode.removeChild(s);
};
script_inpage.js:
alert("this is script");
即使我触发开发者控制台窗口也没有错误。
答案 0 :(得分:1)
您的清单文件无效,"permissions"
部分中的最后一个条目后有一个多余的逗号:
"permissions": [
"unlimitedStorage",
"http://*/",
"tabs", // <-- Remove that comma
],
如果您希望脚本尽早运行,请使用"run_at": "document_start"
代替"document_end"
。然后,您的脚本将在<head>
和<body>
之前运行。