Javascript 阻止某些网页发出的Web请求(通过扩展)

Javascript 阻止某些网页发出的Web请求(通过扩展),javascript,google-chrome-extension,Javascript,Google Chrome Extension,所以我知道如何阻止对某个网站的请求,但你会如何阻止/跟踪/过滤某个网站的请求?例如,名为good.com的网页向evil.com发出请求。目标是阻止对evil.com的请求,如果且仅当它是由good.com发出的。这是阻止网站的简单方法,无论请求来自何处(来自chrome) chrome.webRequest.onBeforeRequest.addListener( 功能(详情){ 返回{cancel:details.url.indexOf(“://www.evil.com/”)!=-1}; }

所以我知道如何阻止对某个网站的请求,但你会如何阻止/跟踪/过滤某个网站的请求?例如,名为
good.com
的网页向
evil.com
发出请求。目标是阻止对
evil.com
的请求,如果且仅当它是由
good.com
发出的。这是阻止网站的简单方法,无论请求来自何处(来自chrome)

chrome.webRequest.onBeforeRequest.addListener(
功能(详情){
返回{cancel:details.url.indexOf(“://www.evil.com/”)!=-1};
},
{URL:[“”]},
[“封锁]);
编辑-不确定它有多重要,但这是在chrome扩展的后台运行的(具有对所有网页的权限)


如果我将权限更改为(为了与上述示例保持一致)严格
good.com
,那么扩展是否只能阻止来自该站点的请求?这真的不太理想,因为我的扩展中有一些功能需要这些权限。

使用
details.tabId
details.frameId
获取站点的url有什么问题吗?@wOxxOm太晚了:获取页面的详细信息是异步的。@Xan,这一点很好,但使用
选项卡维护列表不是很容易吗?更新的
网络导航
事件,如
tabUrl[tabId+”“+frameId]=url
?(当然,“维护”意味着在关闭选项卡或更改其url时应删除旧元素)这是一个可能的解决方案,是的。我刚刚指出了你的第一个想法有什么问题。使用
details.tabId
details.frameId
获取站点的url有什么问题吗?@wOxxOm太晚了:获取页面的详细信息是异步的。@Xan,这一点很好,但使用
选项卡维护列表不是很容易吗?更新的
网络导航
事件,如
tabUrl[tabId+”“+frameId]=url
?(当然,“维护”意味着在关闭选项卡或更改其url时应删除旧元素)这是一个可能的解决方案,是的。我只是想指出你的第一个想法有什么问题。
chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
      return {cancel: details.url.indexOf("://www.evil.com/") != -1};
    },
    {urls: ["<all_urls>"]},
    ["blocking"]);