0

Привет Я пытаюсь автоматизировать фрагмент кода для расширения Google для изменения геолокации. Я хочу, чтобы он работал с кнопкой «Активировать/деактивировать» как: Когда я удаляю оператор IF из «Content.js», он отлично работает, но с выражением IF он не работает. Пожалуйста помоги.Chrome.runtime не работает с кнопкой активации

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); 
     } 
     } 

    } 
}); 

ответ

0

У вас есть SyntaxError в: sendResponse({status: 'activate-it']});

изменить его к этому:

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

не работает. Я понял реальный поток кода, но все же застрял в одном и том же. «Content.js» работает только с «response.status», отправленным из «background.js». Я пытаюсь поставить переключатель на background.js, но он не работает для меня. Я также обновил новые изменения. –

 Смежные вопросы

  • Нет связанных вопросов^_^