// ==UserScript== // @name YouTube Force Link Open in New Tab // @name:zh-CN YouTube强制新标签页打开链接 // @namespace http://tampermonkey.net/ // @version 1.0 // @description Opens YouTube links in new tabs by simulating Ctrl+Click, keeping the original page unchanged. // @description:zh-CN 通过模拟Ctrl+点击,让YouTube链接在新标签页中打开,同时保持原页面不变。 // @author YourName // @match *://*.youtube.com/* // @grant none // @license MIT // @run-at document-start // @downloadURL none // ==/UserScript== (function() { 'use strict'; const YOUTUBE_PATTERNS = ['/watch', '/channel', '/user', '/playlist', '/shorts']; function isYouTubeLink(url) { return url.includes('youtube.com') || url.startsWith('/') || url.startsWith('https://youtu.be/'); } function shouldOpenInNewTab(url) { return YOUTUBE_PATTERNS.some(pattern => url.includes(pattern)); } function simulateCtrlClick(element) { const evt = new MouseEvent('click', { bubbles: true, cancelable: true, view: window, ctrlKey: true }); element.dispatchEvent(evt); } function handleClick(event) { if (event.ctrlKey || event.metaKey) return; const anchor = event.target.closest('a'); if (!anchor || !anchor.href) return; if (isYouTubeLink(anchor.href) && shouldOpenInNewTab(anchor.href)) { event.preventDefault(); event.stopPropagation(); simulateCtrlClick(anchor); } } document.addEventListener('click', handleClick, true); })();