// ==UserScript== // @name 强制后台打开所有链接 // @namespace https://greasyfork.org/ // @version 1.0 // @license MIT // @description 所有链接强制后台打开,兼容Firefox和Chrome // @author pugfly // @match *://*/* // @grant GM_openInTab // @run-at document-start // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 1. 拦截所有左键点击事件 document.addEventListener('click', function(event) { let target = event.target; while (target && target.tagName !== 'A') { target = target.parentElement; } if (target && target.tagName === 'A' && target.href) { event.preventDefault(); // 使用 Tampermonkey 的 API 后台打开链接 GM_openInTab(target.href, { active: false }); } }); // 2. 拦截中键点击事件(防止中键点击导致前台打开) document.addEventListener('auxclick', function(event) { if (event.button === 1) { // 中键点击 let target = event.target; while (target && target.tagName !== 'A') { target = target.parentElement; } if (target && target.tagName === 'A' && target.href) { event.preventDefault(); GM_openInTab(target.href, { active: false }); } } }); // 3. 强制修改所有链接的默认行为 const observer = new MutationObserver(() => { document.querySelectorAll('a[href]').forEach(link => { link.addEventListener('click', event => event.preventDefault()); link.setAttribute('target', '_blank'); }); }); observer.observe(document, { subtree: true, childList: true }); })();