console.log(b)
}); 油猴元信息写// @run-at document-start,然后劫持ajax函数
以下是我的某个脚本里的示例,//@grant unsafeWindow环境,如果是//@grant none环境,把unsafeWindow替换成window
// @run-at document-start
let fetchHook={};
let hook_fetch=unsafeWindow.fetch; //储存原始fetch
unsafeWindow.fetch=async function(...args){ //劫持fetch
//console.log(...args);
if(args=="你要劫持的URL"){
return await hook_fetch(...args).then((oriRes)=>{
let hookRes =oriRes.clone() //克隆原始response
hookRes.text().then(res=>{ //读取克隆response
//console.log("RES",res)
fetchHook["劫持1"]=JSON.parse(res)
})
return oriRes //返回原始response
})
}
return hook_fetch(...args)
} 本帖最后由 瞄帕斯 于 2022-7-29 13:42 编辑
这个是我之前写油猴用的监听请求用的
[*]//监听RUL的
function addXMLRequestCallback(callback){
var oldSend, i;
if( XMLHttpRequest.callbacks ) {
// we've already overridden send() so just add the callback
XMLHttpRequest.callbacks.push( callback );
} else {
XMLHttpRequest.callbacks = ;
oldSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(){
for( i = 0; i < XMLHttpRequest.callbacks.length; i++ ) {
XMLHttpRequest.callbacks( this );
}
oldSend.apply(this, arguments);
}
}
}
//加载脚本时就启动函数开始监听
(function() {
'use strict';
// Your code here...
addXMLRequestCallback( function( xhr ) {
xhr.addEventListener("load", function(){
//判断页面加载状态的
if ( xhr.readyState == 4 && xhr.status == 200 ) {
console.log(xhr.responseURL);
//判断是不是自己想要监听的URl地址字符串就是 你需要监听的地址
if ( xhr.responseURL.includes("homeworkapi.open.com.cn/getHomework") ) {
console.log(xhr.responseURL);
}
}
});
});
})();
感觉都是大佬,我是弟弟,努力学习。。。
页:
[1]