您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
redirect to the real URL directly when clicking on a link that contains a redirect URL
当前为
// ==UserScript== // @name External Link Auto Redirect(Direct Link) // @name:zh-CN 外链自动重定向(默认直链) // @namespace http://tampermonkey.net/ // @version 1.3 // @description redirect to the real URL directly when clicking on a link that contains a redirect URL // @description:zh-CN 点击包含重定向 URL 的链接时,直接跳转到到真实的 URL // @author uiliugang // @run-at document-start // @match *://*/* // @license MIT // ==/UserScript== (function() { 'use strict'; const redirectRegex = /^https?:\/\/.*\?.*https?/; const excludedExtensions = ['.m3u8', '.flv', '.ts']; function processUrl(redirectURL) { // 登录页面,不做处理 if (redirectURL.includes('login')) { return null; } const matches = redirectURL.match(redirectRegex); console.log(`Matches: ${matches}`); if (matches) { let index = redirectURL.substring(4).indexOf("http")+3; let realUrl = decodeURIComponent(redirectURL.substring(index + 1)); //console.log(`Decoded URL: ${realUrl}`); if (isValidUrlAndNotExclude(realUrl)) { return realUrl; } } return null; } function isValidUrlAndNotExclude(string) { try { const url = new URL(string); const pathname = url.pathname; for (const ext of excludedExtensions) { if (pathname.includes(ext)) { return false; } } return true; } catch (e) { return false; } } document.addEventListener('click', function(e) { const element = e.target.closest('a[href]'); if (element) { const processedUrl = processUrl(element.href); if (processedUrl) { e.preventDefault(); window.open(processedUrl, '_blank'); } } //console.log(`Original URL: ${element.href}`); //console.log(`Processed URL: ${processedUrl}`); }); let processedUrl = processUrl(window.location.href); if (processedUrl) { window.location.replace(processedUrl); } })();