Javascript Chrome扩展:使用背景和内容脚本将消息从网页发送到Chrome扩展
我想将消息从网页传递到内容脚本,再传递到背景页面。执行了以下代码,该代码不起作用。 当我点击clickme按钮->向chrome分机发送消息时 manifest.jsonJavascript Chrome扩展:使用背景和内容脚本将消息从网页发送到Chrome扩展,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我想将消息从网页传递到内容脚本,再传递到背景页面。执行了以下代码,该代码不起作用。 当我点击clickme按钮->向chrome分机发送消息时 manifest.json { "name": "Fixes", "version": "2", "manifest_version": 2, "description": "SomeFixes", "permissions": ["tabs", "http://*/*", "https://*/*", "storage"], "op
{
"name": "Fixes",
"version": "2",
"manifest_version": 2,
"description": "SomeFixes",
"permissions": ["tabs", "http://*/*", "https://*/*", "storage"],
"options_page": "options.html",
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": ["http://*/*","https://*/*"],
"js": ["contentscript.js"],
"run_at": "document_start"
}],
"background":{
"scripts":["background.js"]
}
}
page.html.
<html>
<head></head>
<body>
<script>
var go = function() {
var event = document.createEvent('Event');
event.initEvent('hello');
document.dispatchEvent(event);
}
</script>
<a href="javascript:go();">Click me</a>
</body>
</html><html>
<head></head>
<body>
<script>
var go = function() {
var event = document.createEvent('Event');
event.initEvent('hello');
document.dispatchEvent(event);
}
</script>
<a href="javascript:go();">Click me</a>
</body>
</html>
background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
alert("message received");
});
Idea基本上是从网页到分机接收数据。它在这里工作。就我所知,你做得对。但是,如果您在本地测试
page.html
为file:///path/page.html
您需要在manifest.json中使用
而不是http://*/*
,并允许对上的扩展名进行文件访问chrome://extensions 是的,wOxxOm,用本地页面测试,意思是说,像这样的“内容脚本”:[{“匹配项”:[“”、“http://*/*”、“https://*/*”]、“js”:[“contentscript.js”]、“run_at”:“document_start”@wOxxOm,所以问题已经解决了?是的,谢谢@wOxxOm,添加到chrome扩展名的扩展名中,加载page.html本地文件,尝试单击“clickme”。第一次成功,但后来我没有看到警告。:(.如何给出“允许文件访问”)“???转到chrome://extensions
并单击复选框:
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
alert("message received");
});