Greasy Fork is available in English.
通过模拟Ctrl+点击,让YouTube链接在新标签页中打开,同时保持原页面不变。
当前为
// ==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
// ==/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);
})();