mut*_*lis 9 javascript google-chrome block
我试图在网页上阻止项目,但我想在加载之前这样做.所以,例如,我可以使用
chrome.webRequest.onBeforeRequest.addListener(...);
并重定向/取消请求.但我想检查请求的实际内容.我现在正在做的是,开始XMLHttpRequest自己加载url/object,检查内容,并在必要时阻止它.但是,主要问题是实际上没有多少对象被阻塞.这意味着,每个对象都加载了两次:一次用于"我的检查",一次,在我说"好吧,你可以加载它"之后.
如何拦截加载过程,以便我可以动态检查它并在允许的情况下传递数据字节?
希望你理解我的问题,谢谢:-)
我现在如何做的示例:
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"]
);
Run Code Online (Sandbox Code Playgroud)
我能够实现我想要做的事情。该解决方案不一定需要扩展,但对于设置代理这可能很有用。之后,解决方案(针对上面指定的问题)如下:
是的,这并不是真正解决让 chrome 扩展以某种方式执行此操作的问题,但目前还不可能(请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=104058) 。
最好的问候,穆蒂利斯
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |