几年前开始有这个需求:
拦截掉 https://example.com/author/.* 源页面上,发出的对 https://vod.cdn.cn/img/.* 的资源(例如图片)请求
但是放行 https://example.com/others/.* 等其它页面上,发出的对 https://vod.cdn.cn/img/.* 的资源请求
这个需求 uBlock 满足不了(恳求仔细、慢一点读需求),全网也没找到能做到的扩展。
后来找到一个偏方歪法(当时用的 Firefox ),用 Header Editor 来做,重定向请求+自定义函数
if(detail.type.endsWith('_frame'))
return null;
if(/https:\/\/example\.com\/author\/.*/.test(detail.originUrl))
return '_header_editor_cancel_';
通过 Firefox Addon API 提供的 details.originUrl 来判断源页面。这个方法非常好用!
但是最近换成 Chrome 了,虽然 Chrome 也有扩展 Header Editor,但是上面的自定义函数在 Chrome 下用不了。所以请教一下开发大佬:
1
AngryPanda 2020-10-25 10:34:52 +08:00 via Android
OnBeforeSendHeadersOptions
|
2
sneezry 2020-10-25 13:48:57 +08:00
感觉可以通过判断 referer ?之前我向 v2ex-plus 贡献过一段正常显示微博图片的代码,是删除掉这个 header 。你可以改为判断这个 header,如果符合你的规则,就进行拦截。https://github.com/sciooga/v2ex-plus/blob/53f8d25f890f8d2b23f890bd4b4be03ae48603b7/background.js#L636
|
4
AmItheRobot OP @sneezry #2 谢谢:) 确实 chrome 现在 referer 不带路径了。而且 HE 自定义函数里,要拿 header 只能在响应时拿,请求阶段拿不了,贼尴尬 =_=|
https://he.firefoxcn.net/zh-CN/custom-function.html#detail 对象 |