Chrome.runtime不与激活按钮工作

Chrome.runtime doesn't work with activate button

本文关键字:按钮 工作 激活 runtime Chrome      更新时间:2023-09-26

嗨,我正试图自动化一段代码为谷歌扩展改变地理位置。我希望它的工作与激活/停用按钮:当我从"Content.js"中删除IF语句时,它工作得很好,但IF语句不起作用。请帮助。

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

您有一个SyntaxError: sendResponse({status: 'activate-it']});

改成:

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