您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Replace all img tags with src as an SVG file into inline SVG tags
// ==UserScript== // @name Inline SVG Replacer // @namespace https://mkpo.li/ // @version 0.1.1 // @description Replace all img tags with src as an SVG file into inline SVG tags // @author mkpoli // @match *://*/* // @exclude *://*.google.*/* // @grant none // @license CC0 // ==/UserScript== (function() { 'use strict'; const isNonSvgImage = (img) => { const ext = img.src.split('.').pop(); return ext && ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'ico', 'avif', 'apng', 'tiff', 'tif'].includes(ext); } const isSvgResponse = (response) => { const contentType = response.headers.get('Content-Type'); return contentType && contentType.includes('image/svg+xml'); }; console.log("hello2") document.querySelectorAll('img').forEach(async img => { if (isNonSvgImage(img)) return; console.log("replacing", img) try { const response = await fetch(img.src); if (isSvgResponse(response)) { const svgText = await response.text(); const parser = new DOMParser(); const svgDoc = parser.parseFromString(svgText, "image/svg+xml"); const inlineSvg = svgDoc.querySelector('svg'); if (inlineSvg) { Array.from(img.attributes).forEach(attr => { inlineSvg.setAttribute(attr.name, attr.value); }); img.replaceWith(inlineSvg); } } } catch (error) { console.error('Error inlining SVG:', error); } }); })();