// ==UserScript== // @name Show and reload broken images // @description The name explained it // @namespace eight04.blogspot.com // @include http://* // @include https://* // @version 2.1 // @grant GM_addStyle // @downloadURL none // ==/UserScript== (function(){ GM_addStyle( "img{-moz-force-broken-image-icon:1;}" ); function load(d){ d.src += "#"; } function reloadImg(){ var imagesFailed = document.querySelectorAll("img:-moz-broken"); var images = document.images; for(let image of images){ if(!image.complete){ image.classList.add("failed"); }else{ image.classList.remove("failed"); } } for(let image of imagesFailed){ image.classList.add("failed"); } for(let image of images){ if(image.classList.contains("failed") && image.src){ load(image); } } for (let i = 0; i < frames.length; i++) { frames[i].postMessage("EIGHT_IMAGE_RELOAD", "*"); } } function getKey(e){ if(e.keyCode==82 && e.altKey) reloadImg(); } function getMessage(e){ console.log(e); if(e.data != "EIGHT_IMAGE_RELOAD"){ return ; } reloadImg(); } document.addEventListener("keyup",getKey,false); window.addEventListener("message", getMessage, false); })();