您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
处理图片资源加载失败时自动重新加载
当前为
// ==UserScript== // @name 修复copymanga图片错误 // @namespace https://github.com/IronKinoko/copymanga // @version 1.0.2 // @license MIT // @description 处理图片资源加载失败时自动重新加载 // @author IronKinoko // @match https://copymanga.com/* // @icon https://www.google.com/s2/favicons?domain=copymanga.com // @grant none // ==/UserScript== (function () { 'use strict'; async function waitHasComicContent() { return new Promise((resolve) => { function getComic() { const imgs = document.querySelectorAll('ul li img'); if (imgs.length) { resolve(imgs); } else { requestAnimationFrame(getComic); } } requestAnimationFrame(getComic); }) } async function injectFixImg() { /** @type {HTMLImageElement[]} */ const imgs = await waitHasComicContent(); console.log('注入成功'); imgs.forEach((img) => { img.addEventListener('error', () => { const url = new URL(img.src); url.searchParams.set('t', Date.now()); img.src = url.toString(); }); }); } function $(string) { return new DOMParser().parseFromString(string, 'text/html').body.firstChild } function main() { if (/comic\/.*\/chapter/.test(location.href)) injectFixImg(); if (/h5\/comicContent/.test(location.href)) injectFixImg(); const header = document.querySelector('.container.header-log .row'); if (header) { header.style.flexWrap = 'nowrap'; header.querySelector('div:nth-child(6)').replaceWith( $( `<div class="col-1"> <div class="log-txt"> <a href="/web/person/shujia">我的书架</a> <div class="log-unboder"></div> </div> </div>` ) ); header.querySelector('div:nth-child(7)').replaceWith( $( `<div class="col-1"> <div class="log-txt"> <a href="/web/person/liulan">我的浏览</a> <div class="log-unboder"></div> </div> </div>` ) ); header.querySelector('div:nth-child(8)').className = 'col'; header.querySelector('div.col > div > div').style.justifyContent = 'flex-end'; } } main(); }());