【发布时间】:2017-01-08 08:22:25
【问题描述】:
我正在尝试阻止网页上的项目,但我想在加载之前这样做。所以,例如,我可以使用
chrome.webRequest.onBeforeRequest.addListener(...);
并重定向/取消请求。但我想检查请求的实际内容。我现在正在做的是启动XMLHttpRequest 自己加载 url/对象,检查内容,并在必要时阻止它。
然而,主要的问题是,实际上并没有多少物体被阻挡。这意味着,每个对象被加载两次:一次是“我的检查”,一次是在我说“好的,你可以加载它”之后。
如何拦截加载过程,以便即时检查并在允许的情况下传递数据字节?
希望你能理解我的问题,谢谢:-)
我现在如何做的例子:
function shall_be_blocked(info){
var xhr = new XMLHttpRequest();
xhr.open("GET", file, false);
//... #load the file and inspect the bytes
if (xhr.responseText=="block it") {
return true;
}
return false;
}
chrome.webRequest.onBeforeRequest.addListener(
function(info) {
ret = shall_be_blocked(info);
if (ret ...){return {cancel:true};}//loads the file once, as it is getting blocked
return {};//loads the file twice
},
{},["blocking"]
);
【问题讨论】:
-
您是否尝试过使用
ServiceWorker?
标签: javascript google-chrome block