您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Bypass the redirect for t.forasm.com links
// ==UserScript== // @name Bypass t.forasm.com redirect // @namespace http://tampermonkey.net/ // @version 1.1 // @description Bypass the redirect for t.forasm.com links // @author wisp // @license MIT // @runat document-start // @match *://t.forasm.com/* // @grant none // ==/UserScript== (function () { 'use strict'; console.log("[FastExtractor] Script started."); // Try direct extraction early function extractDirectly() { const anchorTag = document.querySelector('#wpsafe-link a[onclick]'); if (anchorTag) { const onclickContent = anchorTag.getAttribute('onclick'); const urlMatch = onclickContent?.match(/window\.open\('(.*?)', '_self'\)/); if (urlMatch && urlMatch[1]) { console.log("[FastExtractor] Final URL extracted early:", urlMatch[1]); window.location.href = urlMatch[1]; return true; // Exit early } } return false; // Continue monitoring } // Observe DOM changes for the button function observeDOM(selector, callback) { const targetNode = document.body; const config = { childList: true, subtree: true }; const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { const targetElement = document.querySelector(selector); if (targetElement) { observer.disconnect(); // Stop observing once found callback(targetElement); break; } } }); observer.observe(targetNode, config); } // Start process if (!extractDirectly()) { observeDOM('#wpsafe-link a[onclick]', (element) => { console.log("[FastExtractor] Found target element via observer:", element); const onclickContent = element.getAttribute('onclick'); const urlMatch = onclickContent.match(/window\.open\('(.*?)', '_self'\)/); if (urlMatch && urlMatch[1]) { console.log("[FastExtractor] Redirecting to:", urlMatch[1]); window.location.href = urlMatch[1]; } }); } })();