在页面加载前拦截 xhr 和 fetch 对象
加个响应拦截器,屏蔽放在用户信息流里面的广告,返回处理后的数据,还能顺便屏蔽 up 主发的广告
屏蔽一些跟踪脚本的请求,然后不会像 ublock 之类的疯狂在控制台报错,直接把请求吞了。
之前写了一个 但是感觉会重复造轮子就凑合用没继续写。
如果是一个扩展,感觉可以订阅一些请求和响应拦截器的脚本和规则,不过做起来好麻烦还是算了
![]() | 1 v1 249 天前 ![]() 这么多年了,还有不知道 tampermonkey 的? |
2 lijiangang886 249 天前 没去纠细节,不是说 Chrome manifest V3 把这个功能干废了吗? |
4 whjlinyi 249 天前 via iPhone AdGuard |
5 CureDovahkiin OP @kk2syc 我寻思里面链接就是我写的用户脚本啊,就是问有没有优化一下做成扩展的 |
7 Archeb 249 天前 大部分情况下是没办法直接注入页面才需要的请求重写,tampermonkey 能直接注入页面还费那劲重写干嘛 |
![]() | 8 abccccabc 249 天前 借这个主题问一下:tampermonkey 如何拦截页面的 audio/video 这些请求呢?一直没有找到这种插件。 不知那位高手 show 一下代码。 |
10 pingdog 249 天前 via Android fiddler 可以拦截改返回内容 |
11 CureDovahkiin OP ![]() @klesh 直接问 deepseek 就行了 https://gist.github.com/shadowdreamer/4687f0fe1da96bec64db68feccbb09d1 看了下应该没毛病( 因为大部分逻辑都通用,所以才想会不会有扩展包装一下,有个修改请求头的扩展叫 Header Editor ,那修改参数和响应体也感觉也可以有 |
12 NoOneNoBody 248 天前 @abccccabc #8 umatrix 之类可以拦截 media 类型,不过可能把 font 之类也拦截了 或者搜 request block (关键词,不是名字)之类的扩展 油猴脚本拦截需要设置更早的加载时间,因为默认是页面加载完成,这样大部分已经加载了,拦截没意义 具体让 AI 写一个就行,绰绰有余 |
![]() | 13 abccccabc 248 天前 @NoOneNoBody @loginv2 多谢两位分享。找到 http request block 和 custome block 挨个试用下,看看效果。 |
![]() | 14 leokun 248 天前 Hoppscotch 的插件实现了类似功能,不过并不是传统的拦截 xhr 和 fetch |
![]() | 15 v1 248 天前 ![]() @CureDovahkiin @klesh 注入点选好都可以重写啊,fetch 参考下,xhr 类似 (function () { const originFetch = fetch; // console.log(originFetch) window.unsafeWindow.fetch = (url, options) => { return originFetch(url, options).then(async (response) => { console.log(url) if(url === 'https://domain/something'){ const respOnseClone= response.clone() let res = await responseClone.json() res.data.push('处理数据') const respOnseNew= new Response(JSON.stringify(res), response); return responseNew }else{ return response } }) } })() |
18 lijiangang886 248 天前 浏览器为扩展提供了 API 可以拦截请求: [webRequest] (已在 manifest V3 中被 Chrome 废止)和 [declarativeNetRequest] |
19 EdwardWong 248 天前 如果是 Bilibili 可以用 https://github.com/the1812/Bilibili-Evolved ,也是用 user.js 实现的,里面有组件可以过滤首页的流。 |