您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
12/10/2024, 8:45:56 AM
当前为
// ==UserScript== // @name xFetch // @description 12/10/2024, 8:45:56 AM // @namespace Violentmonkey Scripts // @match *://*.*/* // @grant GM_xmlhttpRequest // @grant unsafeWindow // @run-at document-idle // @version 0.0.1 // @author me // @license MIT // ==/UserScript== typeOf=a=>a.constructor.name; function xFetch(url,option) { return new Promise((rs,rj)=>{ const detail={}; switch ( typeOf(url) ) { case 'Request': detail.url=url.url; if (url?.method) detail.method=url.method; else detail.method='GET'; if (url?.mod) detail.mod=url.mod; if (url?.headers) detail.headers=url.headers; if (url?.body) detail.data=url.body; if (url?.referrerPolicy) detail.referrerPolicy=url.referrerPolicy; if (url?.redirect) detail.redirect=url.redirect; if (url?.priority) detail.priority=url.priority; if (url?.keepalive) detail.keepalive=url.keepalive; if (url?.integrity) detail.integrity=url.integrity; if (url?.credentials) detail.credentials=url.credentials; if (url?.referrer) detail.referrer=url.referrer; if (url?.cache) detail.cache=url.cache; if (url?.responseType) detail.responseType=url.responseType; //'text', 'json', 'blob', 'arraybuffer', 'document'; else detail.responseType='blob'; break; case 'URL': default: detail.url=url.toString(); if (option?.mod) detail.mod=option.mod; if (option?.method) detail.method=option.method; else detail.method='GET'; if (option?.headers) detail.headers=option.headers; if (option?.body) detail.data=option.body; if (option?.referrerPolicy) detail.referrerPolicy=option.referrerPolicy; if (option?.redirect) detail.redirect=option.redirect; if (option?.priority) detail.priority=option.priority; if (option?.keepalive) detail.keepalive=option.keepalive; if (option?.integrity) detail.integrity=option.integrity; if (option?.credentials) detail.credentials=option.credentials; if (option?.referrer) detail.referrer=option.referrer; if (option?.cache) detail.cache=option.cache; if (option?.responseType) detail.responseType=option.responseType; //'text', 'json', 'blob', 'arraybuffer', 'document'; else detail.responseType='blob'; } detail.onload=rs; detail.onerror=rj; let control = GM_xmlhttpRequest(detail); }) } (function (){ unsafeWindow.xhr=GM_xmlhttpRequest; unsafeWindow.xFetch=xFetch; unsafeWindow.fetch=xFetch; window.fetch=xFetch; })()