Chrome扩展程序可在所有标签/窗口中运行

时间:2014-06-03 00:25:00

标签: javascript google-chrome google-chrome-extension

我发现使用background:scripts不允许扩展程序在所有现有窗口和选项卡或新窗口和选项卡上运行。经过一番研究,我发现了一篇与内容脚本相关的帖子。但是我无法在标签/窗口中使用它。

是否有人能够协助我在所有标签和窗口以及新标签/窗口中进行此操作。

如果我打开www.twitter.com,我希望它使用脚本阻止网站,并在控制台告诉我它已经完成了。我还从Xively中检索值,我希望它在控制台中显示我打开的任何选项卡。

在旁注中,如何将当前URL与预定义URL列表进行比较。如果Xively的值是“tag1”,我希望它使用预定义站点列表并将它们全部阻止。如果它是“tag2”,我希望它阻止另一组预定义的站点。

EDITED1 为我提供更全面的例子。

EDITED2 使用我的代码我现在设法通过更改存储URL的tagger变量来阻止网站,但是当收到不同的标记ID时,我无法取消阻止这些网站。如果网站已被阻止,它将不断阻止该网站。对此有何解释或帮助?

JS档案:

var tag3 = '"*://www.twitter.com/*", "*://www.facebook.com/*"'

var tag2 = '"*://www.google.com/*", "*://www.imgur.com/*"'

var tag1 = '"*://www.yahoo.com/*"'

var tagger = "*://www.paint.com/*";

     chrome.webRequest.onBeforeRequest.addListener(
        function(details) { 
        return {cancel: true};
                    console.log(details.url);
         },
        {urls: [tagger]},
        ["blocking"]);








        // Set your API key first  

// Get feed content  
 xively.setKey( "CnfVSc8FlPqgma61r2Ym0B2VipqyiXbK7vJV67rijBo1Llwf" );
 console.log("XIVELY LOADED");

   var feedID        = 832936337,          // Feed ID  
      datastreamID  = "Reading";       // Datastream ID  
      data = "null";  // Your element on the page
      dataUpdated= "null";  


     console.log("READ ");


    xively.datastream.get (feedID, datastreamID, function ( datastream ) {  

    data = datastream["current_value"];
    console.log(data); 

    xively.datastream.subscribe( feedID, datastreamID, function ( event , datastream_updated ) {  

    dataUpdated = datastream_updated["current_value"] ;  
    console.log(dataUpdated);

    if (dataUpdated == "tag3") { 

    tagger = tag3;
    console.log(tagger);

    }
    else if (dataUpdated == "tag2") { 

    tagger = tag2;
    console.log(tagger);

    }
    if (dataUpdated == "tag1") { 

    tagger = tag1;
    console.log(tagger);

    }
    });  

  });  

        chrome.tabs.query({'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT},
   function(tabs){
      console.log(tabs[0].url);
      if (tabs[0].url == "*www.twitter.com*") {
          alert("Twitter");
      }

   }
);

清单文件:

   {
  "manifest_version": 2,
  "name": "SiteBlockerFyp",
  "description": "Block Respective Sites",
  "version": "1",

"permissions": [
    "cookies",
    "<all_urls>",
    "history",
    "webRequest",
    "webRequestBlocking",
    "*://www.twitter.com/*","*://www.facebook.com/*","*://www.google.com/*","*://www.imgur.com/*","*://www.yahoo.com/*",
    "tabs"


  ],



"background": 
    {


      "scripts": ["jquery.min.js", "xivelyjs.min.js", "background.js"]


    }



}

0 个答案:

没有答案