您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Module providing file download functionality with GET and POST support
当前为
此脚本不应直接安装,它是供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/530648/1558616/FileDownloader-Module.js
// ==UserScript== // @name FileDownloader-Module // @namespace http://tampermonkey.net/ // @version 1.0 // @description Module providing file download functionality with GET and POST support // @author maanimis // @grant GM_xmlhttpRequest // @run-at document-start // ==/UserScript== (function () { 'use strict'; class FileDownloader { static async fetchAsBlob(url, options = {}) { const defaultOptions = { method: 'GET', headers: {}, body: null, }; const fetchOptions = { ...defaultOptions, ...options }; return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: fetchOptions.method, url: url, headers: fetchOptions.headers, data: fetchOptions.body, responseType: 'blob', onload: function (response) { if (response.status >= 200 && response.status < 300) { resolve(response.response); } else { reject(new Error(`HTTP error! Status: ${response.status}`)); } }, onerror: function (error) { reject(new Error('Network error occurred')); }, }); }); } static async fetchWithPost(url, data, headers = {}) { const options = { method: 'POST', headers: { 'Content-Type': 'application/json', ...headers, }, body: JSON.stringify(data), }; return this.fetchAsBlob(url, options); } static async fetchWithFormData(url, formData, headers = {}) { // When using FormData with GM_xmlhttpRequest, we don't need to set Content-Type // as it will be set automatically with the correct boundary const options = { method: 'POST', headers: { ...headers, }, body: formData, }; return this.fetchAsBlob(url, options); } static createObjectUrl(blob) { return URL.createObjectURL(blob); } static revokeObjectUrl(url) { URL.revokeObjectURL(url); } static triggerDownload(blob, filename) { const url = this.createObjectUrl(blob); const link = document.createElement('a'); link.href = url; link.download = filename; link.style.display = 'none'; document.body.appendChild(link); link.click(); document.body.removeChild(link); this.revokeObjectUrl(url); } static openInNewTab(blob) { const url = this.createObjectUrl(blob); window.open(url); return url; } } // Add to window as a module window.FileDownloaderModule = FileDownloader; // Dispatch an event to notify other scripts that the module is loaded const event = new CustomEvent('FileDownloaderModuleLoaded'); document.dispatchEvent(event); console.log('FileDownloader module loaded'); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址