您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes all tracking info from imdb links. Keeps other parameters intact.
// ==UserScript== // @name IMDb - fix links // @namespace https://github.com/Procyon-b // @version 1.2.2 // @description Removes all tracking info from imdb links. Keeps other parameters intact. // @author Achernar // @match https://www.imdb.com/* // @run-at document-body // @grant none // ==/UserScript== (function() { "use strict"; var t; function fix(u) { return u.replace('?', '?&').replace(/&(pf_rd_[a-z]|ref_)=[^&#]*/g, '').replace('?&', '?').replace(/\?$/, ''); } function normalizeLnk(a) { if (/^\/(list|name|title)\/[^\/]+$/.test(a.pathname)) a.pathname+='/'; if (/^(\/title\/.*\/fullcredits)\/cast\/?$/.test(a.pathname)) { a.pathname=RegExp.$1; a.hash='cast'; } if (/^(\/title\/[^\/]+\/.*)\/$/.test(a.pathname)) { a.pathname=RegExp.$1; } } if (t=location.search) { let s=fix(t); if (s!=t) history.replaceState(null, null, (s || location.pathname)+location.hash); } var num=1, stop=0; function fixL(L, j=0, n=num++) { if (stop && (stop > n)) return; let i=0, a, S=Date.now()+200; for (;a=L[j];j++) { if (a.LnkFixed || !a.href) continue; if (Date.now() > S) { if ( !(stop && (stop > n)) ) setTimeout(function(){fixL(L,j,n)},0); return; } if (a.protocol && a.protocol.startsWith('http') && a.host.endsWith('imdb.com') && a.search) { let s=fix(a.search); if (a.search != s) a.search=s; normalizeLnk(a); } if (a.pathname!=='/') a.LnkFixed=1; } } var SI=0; function init() { new MutationObserver(function(mutL){ for (let m of mutL) { if (m.addedNodes) { let e=m.target.querySelectorAll(':scope a'); if (e.length) fixL(e); } } }).observe(document, {childList:true, subtree:true}); clearInterval(SI); SI=-1; stop=num; fixL(document.links); } window.addEventListener('load', function(){fixL(document.links)}); if (document.readyState != 'loading') init(); else document.addEventListener('DOMContentLoaded', init); if (SI<0) return; setTimeout(function(){fixL(document.links);},0); SI=setInterval(function(){ stop=num; fixL(document.links); },250); setTimeout(function(){stop=num;clearInterval(SI);},2000); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址