为了账号安全,请及时绑定邮箱和手机立即绑定

Chrome扩展程序:端口错误:无法建立连接。接收端不存在。

Chrome扩展程序:端口错误:无法建立连接。接收端不存在。

湖上湖 2019-11-04 09:35:09
尝试在内容脚本和后台脚本之间进行通信时,出现以下错误:Port error: Could not establish connection. Receiving end does not exist.Error in event handler for 'undefined': Cannot read property 'message' of undefined       TypeError: Cannot read property 'message' of undefinedbackground.jsfunction onRequest(request, sender, callbackFunction) {    console.log("Me (BS) became this Message:" + request.message);    sendResponse({message: request.message})};chrome.extension.onRequest.addListener(onRequest);streamcloud.jsfunction contactBackground(nachricht){    chrome.extension.sendMessage({message: nachricht}, function(response) {        console.log("The Background Script got the following Message: " + response.message);    });}和我的manifest.json{  "name": "InstantWatch - Dev",  "manifest_version": 2,  "version": "0.7",  "permissions": ["tabs", "http://*/", "https://*/"],  "background": {    "scripts": ["background.js"]  },    "browser_action": {    "default_title": "InstantWatch",    "default_icon" : "icon.ico"  },  "content_scripts": [    {      "matches": ["http://*/*", "http://*/*"],      "js": ["jquery.js", "streamcloud.js"]    }  ]}我找到了添加一个background_page:“ background.html”和一个空白background.html的解决方案,但是由于manifest_version:2后不支持background_page,所以我不能使用它。
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

sendMessage并且onRequest是不兼容。


如果您需要支持Chrome 19及更早版本,请使用onRequest和sendRequest:


chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {

    // Warning: Chrome 19- [receiver]

});

chrome.extension.sendRequest(message, optional_sendResponse);

对于Chrome 20-25,请使用和:chrome.extension.onMessagechrome.extension.sendMessage


chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {

    // Chrome 20+

});

chrome.extension.sendMessage(message, optional_sendResponse);

对于Chrome 26+,请使用和。chrome.runtime.onMessagechrome.runtime.sendMessage


注意:从Chrome 26开始,仍支持不推荐使用的方法,尽管未记录。如果有机会,请更新您的扩展程序以使用新方法,以确保您的扩展程序将来仍然可以使用。


查看完整回答
反对 回复 2019-11-04
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

代替


chrome.extension.onRequest.addListener(onRequest);

采用


chrome.extension.onMessage.addListener(onRequest);

由于您使用的是sendMessage而不是sendRequest。


邮件解析已在新版本的Chrome中更新。sendRequest和onRequest已被弃用。建议与sendMessage和onMessage一起使用。


请参阅docs,以获取Content Script和Background之间的消息解析。


查看完整回答
反对 回复 2019-11-04
  • 2 回答
  • 0 关注
  • 3439 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号