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

尝试在内容脚本和后台脚本之间进行通信时,出现以下错误:

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 undefined

function onRequest(request, sender, callbackFunction) {

console.log("Me (BS) became this Message:" + request.message);

sendResponse({message: request.message})

};

chrome.extension.onRequest.addListener(onRequest);

function contactBackground(nachricht){

chrome.extension.sendMessage({message: nachricht}, function(response) {

console.log("The Background Script got the following Message: " + response.message);

});

}

和我的

{

"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,所以我不能使用它。

回答:

sendMessage并且onRequest是 。

如果您需要支持 ,请使用 和 :

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

// Warning: Chrome 19- [receiver]

});

chrome.extension.sendRequest(message, optional_sendResponse);


对于 ,请使用和:chrome.extension. **onMessage**``chrome.extension.

**sendMessage**

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

// Chrome 20+

});

chrome.extension.sendMessage(message, optional_sendResponse);


对于 ,请使用和。chrome **.runtime.**

onMessagechrome **.runtime.**

sendMessage


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

以上是 Chrome扩展程序:端口错误:无法建立连接。接收端不存在。 的全部内容, 来源链接: utcz.com/qa/426203.html

回到顶部