您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
将全站所有的_top替换为_blank
// ==UserScript== // @name 替换_top为_blank // @namespace https://example.com/ // @description 将全站所有的_top替换为_blank // @match *://*/* // @version 1.0.4 // @run-at document-start // @license MIT // ==/UserScript== (function inject() { console.log("替换_top为_blank脚本已注入"); function replaceTopTargets() { console.log("[replaceTopTargets]") document.querySelectorAll('a[target="_top"]').forEach(el => { el.setAttribute('target', '_blank'); }); } function setupObserver() { console.log("[setupObserver]") const observer = new MutationObserver(replaceTopTargets); observer.observe(document.body, { childList: true, subtree: true }); } function safeInit() { // 初始处理 replaceTopTargets(); setupObserver(); } // 页面状态判断 if (document.readyState === 'loading') { //多个脚本同时注册 document.addEventListener('DOMContentLoaded', ...) 是完全安全的,它们都会被调用,彼此互不干扰。 document.addEventListener('DOMContentLoaded', safeInit); // ⏱ 超时保护机制:最多等 5 秒就执行 setTimeout(() => { if (document.body) { safeInit(); } }, 5000); } else { // DOM 已构建,无需等待 safeInit(); } })();