喜马拉雅
火狐狸
火狐狸
  • UID55837
  • 注册日期2017-07-22
  • 最后登录2019-09-01
  • 发帖数97
  • 经验109枚
  • 威望0点
  • 贡献值86点
  • 好评度6点
  • 社区居民
  • 忠实会员
阅读:446回复:5

[已解决] uBlock是否支持“源”为正则表达式的情况?

楼主#
更多 发布于:2019-06-30 21:50
例如,想阻拦掉 https://example.com/author/.* 源页面上,对 https://vod.doucdn.cn/live/.* 发出的请求
但又不影响 https://example.com/others/.* 等页面

这种情况以 domain= 为粒度,似乎不够用了(例如 /^https?:\/\/vod.doucdn.cn\/live\/.*/$domain=example.com)

uBlock能应付这种需求吗?如果uBlock暂时不可应付这种场景,那么有其它扩展可以满足这个需求吗?(FF或Chrome扩展都可以,虽然这里是FF-only论坛…)
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2019-09-15
  • 发帖数18341
  • 经验4690枚
  • 威望5点
  • 贡献值4272点
  • 好评度1045点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
1楼#
发布于:2019-07-01 09:28
Firefox More than meets your experience
喜马拉雅
火狐狸
火狐狸
  • UID55837
  • 注册日期2017-07-22
  • 最后登录2019-09-01
  • 发帖数97
  • 经验109枚
  • 威望0点
  • 贡献值86点
  • 好评度6点
  • 社区居民
  • 忠实会员
2楼#
发布于:2019-07-01 14:07
fang5566:ubo支持正则表达式的
https://github.com/fang5566/uBlock/wiki/%E5%9F%BA%E4%BA%8E%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%...
回到原帖
谢谢回复,这个wiki发帖前也搜到了。

这篇wiki等于在说,支持请求“目标”为正则的情况。但没说,请求“源”为正则的情况,是否也支持

说的再具体一点,目前这种规则,我们已经知道是支持的(前半部分是正则,后半部分是domain域名):
/^https?:\/\/vod.doucdn.cn\/live\/.*/$domain=example.com
但类似于这种规则,支持吗(前半部分和后半部分,都是正则)?
/^https?:\/\/vod.doucdn.cn\/live\/.*/$regex=/^https?:\/\/example.com\/author\/.*/

——猜测应该是不支持的。
如果不支持,有什么其它扩展能达到类似效果吗?就是主楼写的:
想阻拦掉 https://example.com/author/.* 源页面上,对 https://vod.doucdn.cn/live/.* 发出的请求,同时又不影响 https://example.com/others/.* 等页面,对 https://vod.doucdn.cn/live/.* 发出的请求
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2019-09-15
  • 发帖数18341
  • 经验4690枚
  • 威望5点
  • 贡献值4272点
  • 好评度1045点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
3楼#
发布于:2019-07-01 17:03
$domain=规则选项应该是不支持正则的,作者本来就不喜欢用正则了,支持还要特意说明最好要限定domain避免误杀,更不可能支持domain也用正则。
Firefox More than meets your experience
lonely_8
狐狸大王
狐狸大王
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2019-09-10
  • 发帖数485
  • 经验247枚
  • 威望0点
  • 贡献值72点
  • 好评度75点
  • 社区居民
  • 忠实会员
4楼#
发布于:2019-07-01 21:57
可以向 ublock 作者提功能请求,https://github.com/uBlockOrigin/uBlock-issues/issues


或者用 Header editor 扩展实现:
新建规则类型:重定向请求,不是阻止请求(这个扩展的阻止请求类型不支持自定义函数)。
配置类型:以正则表达式为例,匹配规则为要阻止请求的地址规则
^https:\/\/vod\.doucdn\.cn\/live\/.*
执行类型:自定义函数,内容为
if(detail.type.endsWith('_frame'))
  return null;
if(/https:\/\/example\.com\/author\/.*/.test(detail.originUrl))
  return '_header_editor_cancel_';
以上第 3 行中的
https:\/\/example\.com\/author\/.*
为源页面正则匹配规则。
喜马拉雅
火狐狸
火狐狸
  • UID55837
  • 注册日期2017-07-22
  • 最后登录2019-09-01
  • 发帖数97
  • 经验109枚
  • 威望0点
  • 贡献值86点
  • 好评度6点
  • 社区居民
  • 忠实会员
5楼#
发布于:2019-07-03 02:28
lonely_8:可以向 ublock 作者提功能请求,https://github.com/uBlockOrigin/uBlock-issues/issues


或者用 Header editor 扩展实现:
新建规则类型:重定向请求,不是阻止请...
回到原帖
啊!这个 .test(detail.originUrl) 的方法好聪明啊!大力按一下点赞!
昨天还花了好长时间在找什么新工具,试装了uMatrix等一堆折腾的东西,无果……没想到答案就在眼皮子底下。
非常非常非常感谢^_^
游客

返回顶部