油猴脚本高级应用:拦截与修改网页Fetch请求实战指南
简介:
本文介绍了几个使用油猴(Tampermonkey)脚本拦截和修改网页 fetch
请求的案例。这些脚本可以在浏览器扩展油猴中运行,用于开发者调试网络请求或自定义页面行为。
核心内容:
- fetch 拦截案例2:通过覆盖原生
fetch
函数,拦截请求并修改响应的json
方法,添加自定义属性hook
。但此方法可能会漏掉一些请求。 - fetch 拦截案例1:同样覆盖原生
fetch
,但通过检查请求的URL,只拦截特定域名(如bilivideo.com
)的请求,其他请求正常放行,避免误拦截。 - 国外大神脚本:一个示例脚本框架,展示了油猴脚本的基本结构和元数据,包括运行时机、脚本名称、描述、作者信息等。此脚本实际功能尚未实现,但提供了一个扩展和自定义的起点。
使用场景:
- 网络调试:开发者可以在开发过程中使用这些脚本来拦截和分析网络请求,方便定位问题。
- 页面自定义:用户可以通过修改响应数据,实现对网页内容的个性化定制。
- 学习参考:油猴脚本的示例为学习如何使用油猴扩展和JavaScript进行浏览器自动化提供了参考。
注意事项:
- 脚本运行时机(
@run-at
)设置为document-start
,确保尽早覆盖原生函数。 - 使用
@grant unsafeWindow
声明,授予脚本访问或修改全局窗口对象的权限。 - 脚本可能需要根据实际网页结构和需求进行调整和完善。
fetch 拦截请求案例2(会漏掉一些请求)
// @run-at document-start
// @grant unsafeWindow
(function () {
let oldfetch = fetch;
function fuckfetch() {
return new Promise((resolve, reject) => {
//console.log("arguments",arguments)
oldfetch.apply(this, arguments).then(response => {
const oldJson = response.json;
console.log(response.url)
response.json = function()