我已经加载了一个简单的解压缩chrome扩展。关闭所有其他扩展程序。
manifest.js
{
"manifest_version":2,
"name":"Etc",
"description":"Etc",
"version":"1.0",
"content_scripts": [{
"matches" : ["*://*/*"],
"js": ["contentscript.js"],
"run_at":"document_end"
}],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions":[
"tabs",
"*://*/*"
],
"browser_action": {
"default_title": "Idonethis",
"default_icon":"icon.png"
}
}
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
contentscript.js
chrome.runtime.sendMessage({greeting:"hello"}, function(response) {
console.log(response.farewell);
});
在大多数域名(如www.bbc.co.uk)上,邮件传递正常并显示
message contentscript.js:2
但是在www.google.co.uk或uk.yahoo.com上,据我所知,它不传递消息,也不执行任何contentscript.js。这是Chrome扩展安全规范的一部分吗?
EDIT 此代码已修复,可在此处查看 https://github.com/lindaymacvean/test-chrome-ext
答案 0 :(得分:1)
这可能是因为匹配规则"matches" : ["*://*/"]
。您需要将其更改为"matches" : ["*://*/*"]
,因为目前它只匹配没有路径的选项卡。例如。 http://example.com/
会匹配,但http://example.co.uk/foo
将不匹配。