JS新手求助:如何用Tampermonkey永久修改浏览器文本?
用Tampermonkey永久替换页面文本为"Tacocat"的实用脚本
一、基础静态页面脚本(适配无动态加载的页面)
给你一个直接能用的模板,复制到Tampermonkey的新脚本里即可:
// ==UserScript== // @name 替换文本为Tacocat // @namespace http://tampermonkey.net/ // @version 0.1 // @description 把页面指定文本替换成Tacocat // @author You // @match *://*/* // 改成你要生效的网站地址,比如https://example.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // 定义要替换的原文本和目标文本 const targetText = "要替换的原文本"; // 替换成你实际要修改的那个文本 const replaceWith = "Tacocat"; // 遍历页面所有文本节点进行替换 function replaceTextNodes(node) { if (node.nodeType === Node.TEXT_NODE) { node.textContent = node.textContent.replace(new RegExp(targetText, 'g'), replaceWith); } else { // 递归处理子节点 for (let child of node.childNodes) { replaceTextNodes(child); } } } // 启动替换 replaceTextNodes(document.body); })();
关键修改点:
@match:把*://*/*改成目标网站,比如只在知乎生效就写https://www.zhihu.com/*,留星号则所有网站生效。targetText:填写你要替换的原始文本,注意大小写、空格要完全匹配,或者用'gi'参数忽略大小写(把正则改成new RegExp(targetText, 'gi'))。
二、处理动态加载的内容(多数网站会遇到)
如果目标网站是动态加载内容(比如滚动加载、AJAX刷新),基础脚本只会替换初始加载的内容,后续加载的文本不会变化。这时候用MutationObserver监听页面变化,自动重新替换:
// ==UserScript== // @name 动态替换文本为Tacocat // @namespace http://tampermonkey.net/ // @version 0.1 // @description 自动替换页面静态+动态加载的文本为Tacocat // @author You // @match *://*/* // @grant none // ==/UserScript== (function() { 'use strict'; const targetText = "要替换的原文本"; const replaceWith = "Tacocat"; function replaceTextNodes(node) { if (node.nodeType === Node.TEXT_NODE) { node.textContent = node.textContent.replace(new RegExp(targetText, 'g'), replaceWith); } else { for (let child of node.childNodes) { replaceTextNodes(child); } } } // 初始替换 replaceTextNodes(document.body); // 监听页面DOM变化,自动重新替换 const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { mutation.addedNodes.forEach((node) => { replaceTextNodes(node); }); }); }); // 启动监听 observer.observe(document.body, { childList: true, subtree: true }); })();
三、常见问题排查(为什么教程没效果)
- 检查
@match是否正确:脚本的匹配规则没包含目标网站的话,根本不会运行。 - 确认Tampermonkey脚本开关已开启:打开Tampermonkey面板,看对应脚本的状态。
- 打开浏览器控制台(F12)看报错:如果脚本有语法错误或逻辑问题,控制台会显示具体错误信息。
内容的提问来源于stack exchange,提问作者user25117879
相关产品推荐
相关产品推荐

