Chrome-Erweiterung: Port-Fehler: es Konnte keine Verbindung aufbauen. Empfängerseite nicht vorhanden ist.
Beim Versuch, die Kommunikation zwischen meinem Content - und Hintergrund-Skript, bekomme ich folgenden Fehler:
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);
});
}
und meine manifestieren.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"]
}
]
}
Fand ich die Lösung, fügen Sie ein background_page: "background.html" mit einem leeren background.html aber da background_page nicht unterstützt, da manifest_version: 2, kann ich nicht benutzen.
- Eine andere Möglichkeit, die mein problem lösen mit genau diesen gleichen Fehler: stackoverflow.com/a/13565529/390747
Du musst angemeldet sein, um einen Kommentar abzugeben.
sendMessage
undonRequest
sind nicht kompatibel.Wenn Sie brauchen, um Unterstützung Chrome 19 und früher, verwenden Sie
onRequest
undsendRequest
:Für Chrome 20 - 25, verwenden Sie
chrome.extension.onMessage
undchrome.extension.sendMessage
:Für Chrome 26+, verwenden Sie
chrome.Spielzeit.onMessage
undchrome.Spielzeit.sendMessage
.Hinweis: Chrome 26, die veralteten Methoden werden weiterhin unterstützt, wenn auch ohne Papiere. Wenn Sie eine chance bekommen, aktualisieren Sie Ihre Erweiterung unter Verwendung der neuen Methoden, um sicherzustellen, dass Ihre Erweiterung noch arbeiten in der Zukunft.
Sehen diese Antwort für den code zu erstellen, die kompatibel mit Chrome 20+.
Statt
Verwenden
Da Sie mit sendMessage und nicht sendRequest.
Message-parsing hat, aktualisiert sich in der neuen version von Chrome. sendRequest und onRequest sind veraltet. Es wird empfohlen, mit der sendMessage-und onMessage.
Finden Sie in der Dokumentation zur message-parsing zwischen Content-Skript und Hintergrund.