您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevent unecessary scripts from loading
当前为
- // ==UserScript==
- // @name IMDb - stop scripts
- // @namespace https://github.com/Procyon-b
- // @version 0.6.1
- // @description Prevent unecessary 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\.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.documentElement) {
- setTimeout(startObs,0);
- return;
- }
- obs.observe(document.documentElement, {childList:true, subtree:true});
- let st=document.createElement('style');
- (document.head || document.documentElement).appendChild(st);
- st.innerText='.ipc-loader__circle {animation: unset !important;}';
- }
- startObs();
- // 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) {
- if (!u) return;
- var el=document.createElement('script');
- el.src=u;
- if (ol) el.onload=ol;
- 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={};
- // load blocked scripts
- function fix() {
- if (search) search.oninput=null;
- a=document.querySelectorAll('script[src*="m.media-amazon.com/images/I/"], script[src*="d1zcggttmijv1z.cloudfront.net/_next/static/"]');
- a.forEach(function(e,i,a){
- if (!uniq[e.src]) all.push(e.src);
- uniq[e.src]=1;
- });
- loadJS();
- }
- 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) return;
- addJS(all.shift()+'?', loadJS);
- }
- if (location.pathname=='/') fix();
- if (/^https:\/\/www\.imdb\.com\/.*\/mediaviewer\//.test(location.href)) fix();
- }
- })();