chrome.- Laufzeit.sendMessage funktioniert nicht wie erwartet

Schreibe ich ein Chrome-plugin mit einem content-Skript und ein hintergrund-script, und ich bin versucht, um die beiden kommunizieren.

In meinem content-Skript, das ich Tue,

chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
      console.log(response.farewell);
});

und in meinem hintergrund-script, ich mache

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        console.log(sender.tab ?
          "from a content script:" + sender.tab.url :
          "from the extension");
        if (request.greeting == "hello")
            sendResponse({farewell: "goodbye"});
    }
);

Mein manifest sieht wie folgt aus:

{
    "manifest_version": 2,
    "name": "Tesing Phase",
    "version": "1.0",
    "background": {
        "persistent": false,
        "scripts": ["bgscript.js"]
    },
    "content_scripts": [{
        "js": ["contentscript.js"],
        "all_frames": true,
        "run_at" : "document_start",
        "matches": ["*://*/*"]
    }],
    "web_accessible_resources": ["script.js"]
}

Wenn ich mein plugin, bekomme ich die folgende Fehlermeldung:

Uncaught TypeError: Object #<Object> has no method 'sendMessage' 

Ich versuchte die Protokollierung chrome.runtimeund es gab keine Methode sendMessage. Ich bin mit version 25.0 Chrom auf Ubuntu. Ich habe versucht, mit sendRequest als gut, aber es sagte, es ist abgeschrieben und sendMessage verwendet werden soll.

Kann jemand Punkt mich aus, was ich hier vermisst? Gibt es irgendwelche Berechtigungen, die erforderlich für diese zu arbeiten?

InformationsquelleAutor der Frage Jiby Jose | 2013-03-30

Schreibe einen Kommentar