在新标签页打开链接(无开关按钮版)

默认自动执行,在新标签页打开链接,排除系统文件夹及特殊链接

// ==UserScript==
// @name         在新标签页打开链接(无开关按钮版)
// @namespace    http://tampermonkey.net/
// @version      3.2
// @description  默认自动执行,在新标签页打开链接,排除系统文件夹及特殊链接
// @author       晚风知我意
// @match        https://*/*
// @grant        GM_registerMenuCommand
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    const isSystemFolderLink = (href) => {
        if (/^file:\/\/\/[a-zA-Z]:\//.test(href)) return true;
        if (/^file:\/\/\/(Users|home|etc|var|opt)\//.test(href)) return true;
        if (/^file:\/\/\/\/[^\/]+\//.test(href)) return true;
        return false;
    };

    const handleLinkClick = (event) => {
        const link = event.target.closest('a');
        if (!link || !link.href) return;

        if (link.hasAttribute('download') || 
            link.href.startsWith('javascript:') || 
            link.href.startsWith('mailto:') ||
            link.href.startsWith('tel:') ||
            isSystemFolderLink(link.href)) {
            return;
        }

        event.preventDefault();
        event.stopPropagation();
        window.open(link.href, '_blank');
    };

    GM_registerMenuCommand('当前已默认启用:链接新标签页打开', () => {
        alert('脚本已默认启用,点击普通链接会自动在新标签页打开(已排除下载、邮件、本地文件等特殊链接)');
    });

    const init = () => {
        document.addEventListener('click', handleLinkClick, true);
    };

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }
})();