您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevent unnecessary scripts from loading
// ==UserScript== // @name IMDb - stop scripts // @namespace https://github.com/Procyon-b // @version 0.7.1 // @description Prevent unnecessary scripts from loading // @author Achernar // @match https://www.imdb.com/* // @run-at document-start // @grant none // ==/UserScript== (function() { "use strict"; // which scripts to block function match(s) { return /^https?:\/\/(m\.media-amazon\.com\/images\/I\/|(d1zcggttmijv1z|dqpnq362acqdi)\.cloudfront\.net\/_next\/static\/).*[^?]$/.test(s); } // catch scripts before they are loaded var obs=new MutationObserver(function(muts){ for (let mut of muts) { for (let n of mut.addedNodes) { if ((n.nodeType == 1) && (n.tagName == 'SCRIPT')) { let src=n.src; if (!src) continue; if (match(src)) { n.type='not/javascript'; n.addEventListener('beforescriptexecute', function(e){e.preventDefault();}, true); } } } } }); var c=0; function startObs() { c++; if (!document) { setTimeout(startObs,0); return; } obs.observe(document, {childList:true, subtree:true}); injSt(); } startObs(); function injSt() { var r=document.head || document.documentElement; if (!r) { setTimeout(injSt,0); return; } var st=document.createElement('style'); r.appendChild(st); st.innerText='.ipc-loader__circle, .ipc-loader__dot {animation: unset !important;} section.ipc-page-section[class*="Hero__HeroParent-"] .ipc-chip-list {display: block;} [data-testid="plot"]:not(:last-child) {display: inline-block; margin-right: -2em;} [data-testid="plot"] ~ .ipc-button__text {display: inline;}[data-testid="delayed-loader-test-id"]{display:none;}'; } // load rest of the script after DOM is ready if (document.readyState != 'loading') init(); else document.addEventListener('DOMContentLoaded', init); function init() { var search=document.getElementById('suggestion-search'); if (!search && !/^https:\/\/www\.imdb\.com\/.*\/mediaviewer\//.test(location.href) ) return; if (search) search.oninput=fix; function addJS(u, ol, c=2) { if (!u) return; var el=document.createElement('script'); el.src=u; if (ol) el.onload=ol; el.onerror=function(){ if (c) addJS(u,ol,--c); } try { let r=document.head || document.documentElement; r.insertBefore(el,r.firstChild); }catch(e){} if (el.parentNode) el.parentNode.removeChild(el); } var a, all=[], uniq={}, tot=0, done=true; // load blocked scripts function fix(repeat=false) { if (search) search.oninput=null; a=document.querySelectorAll('script[src*="m.media-amazon.com/images/I/"], script[src*="d1zcggttmijv1z.cloudfront.net/_next/static/"], script[src*="dqpnq362acqdi.cloudfront.net/_next/static/"]'); a.forEach(function(e,i,a){ if (!uniq[e.src]) all.push(e.src); uniq[e.src]=1; }); let uTot=Object.keys(uniq).length; if (tot == uTot) return; tot=uTot; if (done) { done=false; loadJS(); } if (repeat) { setTimeout(function(){fix(true)},1000); setTimeout(function(){fix(true)},3000); setTimeout(function(){fix()},8000); } } function fixPage() { if (location.href.startsWith('https://www.imdb.com/title/')) { var a=document.querySelectorAll('a[href="/"]'); a.forEach(function(e){e.href='javascript:;'}); } } fixPage(); function loadJS() { if (all.length==0) { done=true; return; } addJS(all.shift()+'?', loadJS); } if (location.pathname=='/') fix(true); if (/^https:\/\/www\.imdb\.com\/(video|.*\/mediaviewer)\//.test(location.href)) fix(true); } })();