Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展:使用背景和内容脚本将消息从网页发送到Chrome扩展_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展:使用背景和内容脚本将消息从网页发送到Chrome扩展

Javascript 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

我想将消息从网页传递到内容脚本,再传递到背景页面。执行了以下代码,该代码不起作用。 当我点击clickme按钮->向chrome分机发送消息时

manifest.json

{
"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");
});