Rtings Open Shopping Links in New Tab Only

Opens shopping links in new tabs on rtings.com without affecting the current tab

// ==UserScript==
// @name        Rtings Open Shopping Links in New Tab Only
// @namespace   https://gf.qytechs.cn/en/users/594496-divided-by
// @author      dividedby
// @description Opens shopping links in new tabs on rtings.com without affecting the current tab
// @version     1.1
// @license     GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
// @contributionURL     https://www.paypal.com/cgi-bin/webscr?cmd=_donations&[email protected]&item_name=Rtings+Tab+Donation
// @contributionAmount  $1
// @match       https://www.rtings.com/*
// run-at       document-idle

// ==/UserScript==

(function() {
    'use strict';

    // Array of domain patterns to match
    const domainPatterns = [
        'amazon.com',
        'ebay.com',
        'walmart.com',
        'target.com',
        'bestbuy.com',
        'bhphotovideo.com',
        'shop-links.co'
    ];

    function handleClick(event) {
        const link = event.currentTarget;
        if (domainPatterns.some(pattern => link.href.includes(pattern))) {
            event.preventDefault();
            event.stopPropagation();
            window.open(link.href, '_blank', 'noopener,noreferrer');
        }
    }

    function enhanceLinks() {
        const selector = domainPatterns.map(pattern => `a[href*="${pattern}"]`).join(',');
        const links = document.querySelectorAll(`${selector}:not([data-enhanced])`);
        links.forEach(link => {
            link.setAttribute('data-enhanced', 'true');
            link.addEventListener('click', handleClick, true);
        });
    }

    enhanceLinks();

    const observer = new MutationObserver(mutations => {
        if (mutations.some(mutation => mutation.addedNodes.length > 0)) {
            enhanceLinks();
        }
    });
    observer.observe(document.body, { childList: true, subtree: true });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址