0

Salut J'essaie d'automatiser un morceau de code pour l'extension Google pour modifier la géolocalisation. Je veux qu'il fonctionne avec le bouton Activer/Désactiver comme: Lorsque je supprime l'instruction IF de "Content.js" cela fonctionne très bien mais avec une instruction IF cela ne fonctionne pas. S'il vous plaît aider.Chrome.runtime ne fonctionne pas avec le bouton d'activation

Options.html

<button id="activate-it">Activate!</button> 
<button id="deactivate-it">Deactivate!</button> 

Background.Js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) 
    {  
      if (request.method == "getStatus") 
      { 
      sendResponse({status: 'activate-it'}); 
      } 
    }); 

Content.Js

chrome.runtime.sendMessage({method: "getStatus"}, function(response) 
{ 
if (response.status == "activate-it") 
    { 
     var lat = "28.22"; 
     var lon = "70.86"; 

     var script = document.createElement('script'); 
     script.innerHTML = 'navigator.geolocation.getCurrentPosition=function(a,b){a({coords:{latitude:'+lat+',longitude:'+ lon +'},timestamp:Date.now()})};var position={coords:{latitude:'+lat+',longitude:'+lon+'}};'; 
     document.head.insertBefore(script, document.head.firstChild); 
    } 

    else if (response.status!="activate-it") 
    { 
     var scripts = document.getElementsByTagName('script'); 

     for(var i = 0; i < scripts.length; i++) 
     { 
     if(scripts[i].text.indexOf("coords") !== -1) 
     { 
      scripts[i].text = scripts[i].text.replace(/position\.coords\.latitude/g, lat); 
      scripts[i].text = scripts[i].text.replace(/position\.coords\.longitude/g, lon); 
      scripts[i].text = scripts[i].text.replace(/coords\.latitude/g, lat); 
      scripts[i].text = scripts[i].text.replace(/coords\.longitude/g, lon); 
     } 
     } 

    } 
}); 

Répondre

0

Vous avez un SyntaxError dans: sendResponse({status: 'activate-it']});

Modifier à ceci:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) 
{  
     if (request.method == "getStatus") 
     { 
     sendResponse({status: 'activate-it'}); 
     } 
}); 
+0

ne fonctionne pas. J'ai compris le flux réel du code, mais toujours coincé dans la même chose. Le "content.js" semble fonctionner uniquement avec "response.status" envoyé par "background.js". J'essaie de mettre un switch sur background.js mais ça ne marche pas pour moi. J'ai également mis à jour les nouveaux changements. –