developpement extension : communication entre l'extension, le content_

developpement extension : communication entre l'extension, le content_ - Javascript/Node.js - Programmation

Marsh Posté le 11-11-2017 à 16:24:47    

Bonjour,  
 
Je suis entrain de développer une extension et bloque sur la communication entre les différents éléments.
 
L'objectif est d'afficher une popup dans la page visitée (qui contient des éléments de la page elle même) et de remonter à l'extension les actions menées sur cette popup.
 
Voici mon manifest.json

Code :
  1. {
  2.    "manifest_version": 2,
  3.    "name" :"test",
  4.    "version" :"0.1",
  5.    "browser_action": {
  6.       "default_icon": "test.png",
  7.       "default_popup": "test.html",
  8.       "default_title": "titre"
  9.    },
  10.    "permissions": [
  11.       "activeTab",
  12.       "tabs",
  13.       "storage",
  14.       "webRequest",
  15.       "webRequestBlocking",
  16.       "background"
  17.    ],
  18.    "background": {
  19.       "scripts": ["background.js"]
  20.    },
  21.    "content_scripts": [{
  22.       "matches": ["*://*/*"],
  23.       "css": ["content.css"],
  24.       "js": ["jQuery.min.js", "lib.js", "content.js"]
  25.    }]
  26. }


 
 
La partie du content_script permettant de communiquer vers le background : dans [B]content.js[/B]

Code :
  1. chrome.runtime.sendMessage({function: "sendInfo", info: "text"}, function(response) {
  2.             console.log("reponse" )
  3.             console.log(response.farewell)
  4.          })


 
La partie permettant de recevoir le message dans [B]background.js[/B]

Code :
  1. chrome.runtime.onMessage.addListener(
  2.   function(request, sender, sendResponse) {
  3.     if (request.greeting == "sendInfo" )
  4.       sendResponse({farewell: "info reçues"});
  5.   });


 
Jusque là ca fonctionne bien : la communication entre le background et le content script se fait !
 
 
Par contre je n'arrive pas à faire communiquer l'extension avec le background : [B]test.js (appelé par le test.html)[/B]

Code :
  1. chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
  2.    chrome.tabs.sendMessage(tabs[0].id, {greeting: "sendInfo"}, function(response) {
  3.      console.log(response.farewell);
  4.      authorizedTrackers = JSON.parse(response.farewell)
  5.   })
  6. })


 
[B]A cet endroit, j'ai [I]response[/I] qui est non définit :'( [/B]
 
Je me suis beaucoup appuyé sur cette doc :  
https://developer.chrome.com/extens [...] ing#simple
 
Auriez vous une idée de ce qui ne va pas ?
Merci pour votre aide.

Reply

Marsh Posté le 11-11-2017 à 16:24:47   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed