您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
重定向X.com到Twitter.com并确保后面有“mx=1"参数
// ==UserScript== // @name X.com to Twitter.com Redirect // @name:zh-CN 重定向X.com到Twitter.com // @namespace NTE // @version 1.6 // @description Redirects X.com URLs to Twitter.com and ensures the 'mx=1' parameter is present. // @description:zh-cn 重定向X.com到Twitter.com并确保后面有“mx=1"参数 // @author NTE // @match *://x.com/* // @match *://twitter.com/* // @match *://mobile.x.com/* // @match *://mobile.twitter.com/* // @match *://pro.x.com/* // @match *://pro.twitter.com/* // @exclude *://x.com/i/tweetdeck* // @exclude *://x.com/i/oauth* // @exclude *://x.com/oauth* // @run-at document-start // @grant none // @license AGPL-3.0-or-later // ==/UserScript== (function() { 'use strict'; console.log('Tampermonkey script is running. Version 1.4'); // 脚本启动日志 const currentUrl = new URL(window.location.href); let targetHostname = currentUrl.hostname; let targetPathname = currentUrl.pathname; let targetSearchParams = new URLSearchParams(currentUrl.searchParams); // 复制当前URL的查询参数 let shouldRedirect = false; console.log('Current URL (当前URL):', currentUrl.toString()); console.log('Current Hostname (当前主机名):', currentUrl.hostname); console.log('Current Pathname (当前路径):', currentUrl.pathname); console.log('Current Search Params (当前查询参数):', currentUrl.searchParams.toString()); // 情况1: 如果主机名以 x.com 结尾 if (currentUrl.hostname.endsWith('x.com')) { console.log('Condition met: Hostname ends with x.com (条件满足: 主机名以 x.com 结尾)'); // 使用新的正则表达式替换主机名。 // `^(.*?)x\.com$` 会匹配: // - `x.com` -> 捕获组 $1 为空字符串,替换为 `twitter.com` // - `mobile.x.com` -> 捕获组 $1 为 `mobile.`,替换为 `mobile.twitter.com` targetHostname = currentUrl.hostname.replace(/^(.*?)x\.com$/, '$1twitter.com'); console.log('Target Hostname after replacement (替换后的目标主机名):', targetHostname); targetSearchParams.set('mx', '1'); // 设置 mx=1 参数 console.log('Target Search Params after setting mx=1 (设置mx=1后的目标查询参数):', targetSearchParams.toString()); // 处理根路径重定向 if (currentUrl.pathname === '/') { targetPathname = ''; // 移除根路径的斜杠 console.log('Root path detected, target pathname (检测到根路径,目标路径):', targetPathname); } shouldRedirect = true; console.log(`Detected ${currentUrl.hostname}, preparing to redirect to ${targetHostname}. (检测到 ${currentUrl.hostname},准备重定向到 ${targetHostname}。)`); } // 情况2: 如果主机名以 twitter.com 结尾且缺少 'mx' 参数 else if (currentUrl.hostname.endsWith('twitter.com') && !currentUrl.searchParams.has('mx')) { console.log('Condition met: Hostname ends with twitter.com and mx is missing. (条件满足: 主机名以 twitter.com 结尾且缺少 mx 参数。)'); targetSearchParams.set('mx', '1'); shouldRedirect = true; console.log('Target Search Params after setting mx=1 (设置mx=1后的目标查询参数):', targetSearchParams.toString()); } else { console.log('No specific redirection condition met based on hostname/params. (没有满足特定重定向条件,基于主机名/参数。)'); } // 手动构建新的 URL 字符串 let newUrlString = `${currentUrl.protocol}//${targetHostname}${targetPathname}`; if (targetSearchParams.toString()) { newUrlString += `?${targetSearchParams.toString()}`; } // 处理 URL 中的哈希部分(#后面的内容) if (currentUrl.hash) { newUrlString += currentUrl.hash; } console.log('shouldRedirect (是否需要重定向):', shouldRedirect); console.log('newUrlString (新URL字符串):', newUrlString); console.log('currentUrl.toString() (当前URL字符串):', currentUrl.toString()); console.log('Are URLs different? (URL是否不同?):', newUrlString !== currentUrl.toString()); // 如果需要重定向且新旧URL不同,则执行重定向 if (shouldRedirect && newUrlString !== currentUrl.toString()) { console.log('Performing redirection... (正在执行重定向...)'); console.log('Redirecting from (从):', currentUrl.toString()); console.log('Redirecting to (到):', newUrlString); window.location.replace(newUrlString); } else { console.log('No redirection performed. (未执行重定向。)'); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址