您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
download svg on one click
// ==UserScript== // @name (react-icons)Svg downloader // @namespace http://tampermonkey.net/ // @version 0.2 // @description download svg on one click // @author Poe // @match *react-icons.github.io/react-icons* // @icon https://cdn-icons-png.flaticon.com/512/1829/1829008.png // @grant none // @license MIT // ==/UserScript== (function () { "use strict"; const handleKeyDown = (event) => { if (event.altKey && (event.keyCode===83)) { alert(`SVG download functions attached to svgs 1. click svg to download. 2. refresh page to unmount download functions`) const svgs = document.getElementsByTagName("svg"); const svgOnclick = (e) => { console.log("you clicked svg e.target:", e.currentTarget); const svg = e.currentTarget; const serializer = new XMLSerializer(); let source = serializer.serializeToString(svg); //add name spaces. if ( !source.match(/^<svg[^>]+xmlns="http\:\/\/www\.w3\.org\/2000\/svg"/) ) { source = source.replace( /^<svg/, '<svg xmlns="http://www.w3.org/2000/svg"', ); } if ( !source.match(/^<svg[^>]+"http\:\/\/www\.w3\.org\/1999\/xlink"/) ) { source = source.replace( /^<svg/, '<svg xmlns:xlink="http://www.w3.org/1999/xlink"', ); } //add xml declaration let sourceAll = '<?xml version="1.0" standalone="no"?>\r\n' + source; //convert svg source to URI data scheme. let url = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(sourceAll); let link = document.createElement("a"); document.body.appendChild(link); link.href = url; link.download = "svgDownloaded"; link.click(); }; Object.values(svgs).forEach((svg) => { svg.removeEventListener("click", svgOnclick, true); svg.addEventListener("click", svgOnclick, true); }); } }; document.addEventListener("keydown", handleKeyDown, false); })();