0

こんにちは、Geolocation を変更するために Google 拡張機能のコードを自動化しようとしています。「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);
         }
      }

   }
});
4

1 に答える 1

0

次の場所に SyntaxError があります。sendResponse({status: 'activate-it']});

これを次のように変更します。

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) 
 {      
       if (request.method == "getStatus") 
       {
        sendResponse({status: 'activate-it'});
       }
 });
于 2015-09-10T16:59:40.347 に答える