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

浏览:47日期:2024-03-13
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决Chrome扩展程序:端口错误:无法建立连接接收端不存在?

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开始,仍支持不推荐使用的方法,尽管未记录。如果有机会,请更新您的扩展程序以使用新方法,以确保您的扩展程序将来仍然可以使用。

解决方法

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

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

background.js

function onRequest(request,sender,callbackFunction) { console.log('Me (BS) became this Message:' + request.message); sendResponse({message: request.message})};chrome.extension.onRequest.addListener(onRequest);

streamcloud.js

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

相关文章: