Chrome-Erweiterung sendMessage-Fehler aus content-Skript, um html-hintergrund

Ich gerade aktualisiert meine chrome-Erweiterung zu json in der version 2 und bin versucht, meine Verlängerung wieder zu arbeiten. Das problem ist sendRequest war abgeschrieben entlang des Weges. Also ich kopiere den code aus https://developer.chrome.com/extensions/messaging.html in mein script und ändern Sie es mit meinen eigenen Variablennamen, und es funktioniert nicht.

Also dann ich gehe zurück und in den ursprünglichen code und es funktioniert immer noch nicht. Ich habe gelesen, mehrere Fragen, die ähnlich sind [und hoffentlich wird nicht geschlossen, als ein Duplikat, weil keiner von Ihnen waren die gleichen wie meine Lage].

manifestieren.json:

{
   "background": {
        "page": "background.html"
        },
    ... ... ...
   "content_scripts": [ {
      "css": [ "style.css" ],
      "js": [ "jq.js", "script.js" ],
      "matches": [ "http://*.craigslist.org/*/*.htm*" ]
   } ],
   ... ... ...
   "permissions": [ "tabs", "http://*.craigslist.org/*/*.htm*" ],
   "manifest_version": 2,
   "update_url": "http://clients2.google.com/service/update2/crx",
   "version": "3.0"
}

background.html:

<html>
<script type='text/javascript'>
   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"});
  });
    });
</script>
</html>

script.js:

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

Nun ich betreibe eine Seite [auf craigslist], und gehen Sie zu der Konsole und das ist der Fehler:

Port error: Could not establish connection. Receiving end does not exist.
TypeError: Cannot read property 'farewell' of undefined
    at chrome-extension://dhmjefbokfkjpdbigkadjpgjeflchgea/script.js:9:23

Ich Chrome Beta auf Ubuntu 12.10 64-bit (Google Chrome: 27.0.1453.15 (Offizieller Build 191758) beta)

Sie müssen, verschieben Sie die inline-code in eine externe Datei. Diese Frage wurde vorher gefragt, und eine detaillierte Antwort zur Verfügung.
möglich, Duplikat der Port Fehler beim ändern der chrome-Erweiterung von manifest v1, v2

InformationsquelleAutor Matt | 2013-04-08

Schreibe einen Kommentar