Jun*_*Jun 9 javascript google-chrome google-chrome-extension
我在这里重新发布了来自Chromium-extensions google群组的问题.
在我的扩展中,我想基于url模式取消一些webRequests.我的问题是,如果我在onBeforeRequest事件监听器中返回{cancel:true},浏览器将重定向到一个页面,告诉我该请求被某个扩展名阻止.但我只想默默地取消请求(没有发生任何事情).
我还试图在onBeforeRequest事件监听器中返回{redirectUrl:""},控制台会记录一条错误,说""不是有效的URL,并且浏览器底部出现一个条,说" 等待扩展 ".为了解雇该栏,我在该网页中运行内容脚本" window.stop() ".这有时会起作用,但并非总是如此.所以我想知道是否有人有更好的解决方案.谢谢!!
One*_*One 15
您应该使用"javascript:"url:
{
redirectUrl:"javascript:"
}
Run Code Online (Sandbox Code Playgroud)
重定向到回复HTTP状态代码204的页面,例如https://robwu.nl/204 这是我的网站,我不会将任何流量记录到此URL.
对于HTTP状态为204的响应,规范要求以下行为:
如果客户端是用户代理,它不应该从导致请求发送的文档视图中更改它的文档视图.这种反应主要是为了允许操作发生而不引起改变到用户代理的活动文档视图的输入,尽管任何新的或更新的元信息应在用户代理的活动视图当前应用于该文档.
这是一个简单的示例,一个无声地阻止对YouTube的所有请求的扩展程序:
chrome.webRequest.onBeforeRequest.addListener(function(details) {
var scheme = /^https/.test(details.url) ? 'https' : 'http';
return { redirectUrl: scheme + '://robwu.nl/204' };
}, {
urls: ['*://www.youtube.com/*'] // Example: Block all requests to YouTube
}, ['blocking']);
Run Code Online (Sandbox Code Playgroud)
此示例根据请求的方案重定向到http://robwu.nl/204或https://robwu.nl/204,以避免混合内容警告.
要使此示例起作用,您需要在清单文件中声明该站点的webRequest,webRequestBlocking和主机权限.
归档时间: |
|
查看次数: |
4633 次 |
最近记录: |