Want.html
Nachrichten können nicht von Seite zu Chrome Extension passieren
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<button onclick="myFunction()">Copy Text</button>
<script>
function myFunction() {
alert("go");
var id = "lmeobdocdijngimfmndbaljkejddkpbc"
chrome.runtime.sendMessage(id, { data: "Todo" },
function(response){
if(response == undefined){
console.log("Message didnt cross site");
console.log(chrome.runtime.lastError);
console.log(chrome.runtime.lastError.message);
}
}
)};
</script>
</body>
</html>
ich eine Chrom extention gemacht und möchte eine Nachricht an meine Erweiterungen Hintergrund Skript schicken Sachen mit einem Klick auf eine Schaltfläche zu tun, wie gesehen. Die Erweiterung id markiert als id
Das ist mein background.js
chrome.runtime.onMessageExternal.addListener(
function (request, sender, sendResponse) {
if (request.data === "Todo") {
alert("Listened");
sendResponse({ data: "money" });
});
Hier ist meine manifest.json
{
"manifest_version": 2,
"name": "E",
"description": "P",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"background": {
"scripts": [ "background.js" ]
},
"permissions": [
"*://*/*",
"cookies",
"activeTab",
"tabs",
"https://ajax.googleapis.com/",
],
"externally_connectable": {
"matches": ["https://google.com/myindex/Want.html"]
}
}
Allerdings, wenn ich versuche, die eine Verbindung zu laufen, bekomme ich Message didn't cross site
und der Fehler Object {message: "Could not establish connection. Receiving end does not exist."}
Jeder Hinweis, warum das funktioniert, wie ich anstrengend war Die Chrome Docs und alle sagen, das ist richtig.
Sie erhalten offensichtlich eine Antwort, also muss es zu background.js kommen ... oder vielleicht nicht jetzt, dass ich Ihren Code wieder gelesen habe –
@JaromandaX Ich dachte nicht so. Laut den Dokumenten ist der Rückruf wie folgt formatiert: _Das JSON-Antwortobjekt, das vom Handler der Nachricht gesendet wird. Wenn bei der Verbindung mit der Erweiterung ein Fehler auftritt, wird der Callback ohne Argumente und runtime.lastError wird auf die Fehlermeldung gesetzt. – Stevie