GM_DL

GM_download but it actually works

目前为 2025-01-11 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/523457/1518870/GM_DL.js

// ==UserScript==
// @name        GM_DL
// @namespace   Violentmonkey Scripts
// @grant       GM.xmlHttpRequest
// @version     1.0
// @author      https://greasyfork.org/en/users/1409235-paywalldespiser
// @description GM_download but it actually works
// @license     MIT
// @require     https://cdn.jsdelivr.net/npm/[email protected]/dist/FileSaver.min.js
// ==/UserScript==

/**
 * Description placeholder
 *
 * @param {{ url: string | URL; data?: string; headers?: { [key: string]: string }; filename: string; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'TRACE' | 'OPTIONS' | 'CONNECT' = ['GET']; }}
 * @returns {Promise<void>}
 */
function GM_DL({ url, filename, method = 'GET', data, headers }) {
    return GM.xmlHttpRequest({
        url,
        method,
        responseType: 'blob',
        data,
        headers,
    }).then(({ response }) => saveAs(response, filename));
}