您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
XML Http Sniffer
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/443537/1041211/XHS.js
// ==UserScript== // @name XHS // @license MIT // @version 1.2 // @description XML Http Sniffer // @author 0vC4 // @match http://*/* // @match https://*/* // @grant none // @run-at document-start // @namespace https://greasyfork.org/users/670183 // ==/UserScript== const XHS = (() => { const xhs = window.xhs || {}; if (xhs.xhr) return xhs; const pipe = (type, ...next) => function() { for (const hook of xhs.hooks.sort((a, b) => b.priority - a.priority)) { if (!hook[type]) continue; if (!arguments) break; arguments = hook[type].call(this, ...arguments); } if (!arguments) return; next.flat().forEach(func => func.call(this, ...arguments)); }; const proto = XMLHttpRequest.prototype; xhs.xhr = XMLHttpRequest; xhs.open = proto.open; xhs.send = proto.send; xhs.hooks = []; xhs.setHook = hook => { xhs.hooks.push(hook); return xhs; }; xhs.setHooks = (...hooks) => { xhs.hooks.push(...hooks.flat()); return xhs; }; proto.open = function() { const [method, url] = arguments; Object.assign(this, { method, url }); pipe('open', xhs.open).call(this, ...arguments); }; proto.send = function() { this._onload = this.onload || (() => 0); this.onload = function() { Object.defineProperty(this, 'response', { enumerable: true, configurable: true, writable: true, value: this.response, }); pipe('onload', this._onload).call(this, ...arguments); }; pipe('send', xhs.send).call(this, ...arguments); }; return xhs; })(); // 0vC4#7152