我发现使用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"]
}
}