您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
知乎嘲讽回来罢
// ==UserScript== // @name zhihusurprise // @namespace http://tampermonkey.net/ // @version 1.1 // @description 知乎嘲讽回来罢 // @author You // @match *://*.zhihu.com/* // @grant none // @license GPLv3 // ==/UserScript== (function() { 'use strict'; // 配置要替换的图片地址 const imageReplacements = { // 原始地址: 新地址 'https://pic1.zhimg.com/v2-5c9b7521eb16507c9d2f747f3a32a813.png': 'https://raw.githubusercontent.com/yizhibaize1/zhihusurprise/refs/heads/main/surprise.jpg', // 可以添加更多替换规则 // '原始地址2': '新地址2', }; // 主替换函数 function replaceImages() { // 处理所有<img>标签 document.querySelectorAll('img').forEach(img => { const src = img.src; // 检查是否需要替换 for (const [oldUrl, newUrl] of Object.entries(imageReplacements)) { if (src.includes(oldUrl)) { // 避免重复替换 if (!img.dataset.replaced) { console.log(`替换图片: ${src} -> ${newUrl}`); img.src = newUrl; img.dataset.replaced = 'true'; // 标记已替换 } break; } } }); // 处理CSS背景图片 const styleElements = document.querySelectorAll('*[style]'); styleElements.forEach(element => { const style = element.getAttribute('style'); for (const [oldUrl, newUrl] of Object.entries(imageReplacements)) { if (style.includes(oldUrl)) { const newStyle = style.replace( new RegExp(`url\\(["']?${escapeRegExp(oldUrl)}["']?\\)`, 'gi'), `url("${newUrl}")` ); element.setAttribute('style', newStyle); element.dataset.bgReplaced = 'true'; // 标记已替换 break; } } }); } // 辅助函数:转义正则特殊字符 function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } // 初始替换 replaceImages(); // 监听DOM变化以处理动态加载的内容 const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.addedNodes.length) { replaceImages(); } }); }); // 开始观察整个文档的变化 observer.observe(document, { childList: true, subtree: true }); // 监听URL变化(适用于单页应用) let lastUrl = location.href; setInterval(() => { const currentUrl = location.href; if (currentUrl !== lastUrl) { lastUrl = currentUrl; // 添加延时确保新页面内容加载完成 setTimeout(replaceImages, 1000); } }, 500); })();