2011-06-12 3 views
2

Je n'arrive pas à faire en sorte que mon script de contenu communique avec ma page d'arrière-plan. Je cours une extension déballée. Dans mon script de contenu send.js J'ai une ligneL'extension Chrome background.html ne se connecte pas à la console

chrome.extension.sendRequest({message: "hey"}, function(response){});

et mon background.html ressemble à:

<script> 
/* the coffeescript way, but I also tried without the 
* coffeescript wrappers and got the same errors. */ 
(function() { 
    var dispatchRequest; 
    dispatchRequest = function(request, sender, sendResponse) { 
    console.log("request dispatch called"); 
    } 
    chrome.extension.onRequest.addListener(dispatchRequest); 
}).call(this); 
</script> 

Je continue à obtenir une erreur Port error: Could not establish connection.

Juste pour essayer de trouver l'erreur j'ai changé background.html à

<script> 
console.log("Background html is running!"); 
</script> 

Je puis rechargé la page et vérifié la console Chrome, mais il n'y avait pas de sortie.

Voici mon (abrégé) manifest.json:

{ 
    "background-page": "background.html", 
    "content_scripts": [{ 
     "all_frames": true      , 
     "css": [ "style.css" ]     , 
     "js": [ "send.js" ]      , 
     "matches": [ "http://mail.google.com/*" , 
        "https://mail.google.com/*" ] 
    }], 
    "permissions": [ "tabs", "http://*/", "https://*/", "cookies" ] 
} 

À ce stade, je suis à une perte de savoir comment obtenir le background.html pour exécuter ou comment obtenir mon script de contenu pour communiquer avec lui.

Répondre

1

En supposant qu'il ne s'agisse pas simplement d'une erreur de transcription, la clé manifeste de la page d'arrière-plan doit être background_page, et non background-page.

+1

C'est un super endroit. Je me sens stupide maintenant. –

+0

Notez que ceci est ancien, la façon la plus récente est d'utiliser '' background '': {"page": "background.html"} ' – ripper234