User talk:Mr.Z-man/badimages
Nice script, the general outline looks familiar ^_^. There is an alternate 'safer' way to do this by the way: you can hide all images before the document loads, and then you re-display the safe ones.
Here is an example mockup:
if(wgAction == 'view') preemptImages();
function preemptImages() {
appendCSS('#bodyContent img {visibility:hidden;}\n#bodyContent img.goodimage {visibility:visible;}\n#bodyContent img.badimage {display:none;}');
}
function appendCSS(text) {
var s = document.createElement('style');
s.type = 'text/css';
s.rel = 'stylesheet';
if (s.styleSheet) s.styleSheet.cssText = text //IE
else s.appendChild(document.createTextNode(text + '')) //Safari sometimes borks on null
document.getElementsByTagName('head')[0].appendChild(s);
return s;
}
function badImageGet() {
var url = wgScriptPath + '/api.php?action=query&titles=MediaWiki:Bad%20image%20list&prop=links&format=json&plnamespace=6&callback=badImages';
var scriptElem = document.createElement('script');
scriptElem.setAttribute('src',url);
scriptElem.setAttribute('type','text/javascript');
document.getElementsByTagName('head')[0].appendChild(scriptElem);
}
function badImages(obj) {
if(!obj['query'] || !obj['query']['pages']) return
badimages = obj['query']['pages']['1724570']['links'];
var badimagelist=new Array();
for (var q=0;q<badimages.length;q++) {
badimagelist[q] = badimages[q].title;
}
badimagelist = badimagelist.toString();
for (var i=0; i<document.images.length; i++) {
imagename = document.images[i].src.toString();
if (imagename.indexOf('upload.wikimedia.org') != -1) {
if (imagename.indexOf('/thumb/') == -1) {
imagename = imagename.replace(/http:\/\/upload\.wikimedia\.org\/wikipedia\/\w+\/\w\/\w\w\//, 'Image:');
} else {
imagename = imagename.replace(/http:\/\/upload\.wikimedia\.org\/wikipedia\/\w+\/thumb\/\w\/\w\w\//, 'Image:');
imagename = imagename.replace(/\/\w+px-.*/, '');
}
imagename = imagename.replace(/_/, ' ');
if (badimagelist.indexOf(imagename) != -1) {
document.images[i].className += ' badimage';
} else {
document.images[i].className += ' goodimage';
}
}
}
}
if(wgAction == "view") {
addOnloadHook(badImageGet);
}
The reason it is good to do it this way: all images are made invisible with 'visibility', this preserves the spacing of the page, so as to keep most pages from reloading or content jumping around. The images are then each checked, and the good images are made visible again. The bad ones however are additionally made display:none so as to remove the space they take up (this is optional).
Just maybe some ideas to improve your awesome script ^_^. --Splarka (rant) 10:12, 3 March 2008 (UTC)
Custom list
[edit]Out of curiosity (I wouldn't use it myself), could someone create their own custom bad image list? Andjam (talk) 10:18, 7 December 2008 (UTC)
- I suppose all you'd need to do is copy the script to your own user space and edit it to look at some other list of proscribed image files. Frotz (talk) 03:50, 30 December 2008 (UTC)
Broken script
[edit]The script now refuses to show any' image at all. Just thought I'd pop a note here to tell you that. NuclearWarfare contact meMy work 23:57, 29 December 2008 (UTC)
- It seems to be because of bugzilla:16806. Until that's fixed, all I can do is disable the script. Mr.Z-man 03:25, 30 December 2008 (UTC)
- Looks OK in Firefox 3.5 Samboy (talk) 15:00, 3 September 2009 (UTC)
Doesn't work
[edit]I added this script to my monobook.jss page and it doesn't work at all. I bypassed my cache but none of the images are hidden. Ledlecreeper27 (talk) 23:01, 7 June 2021 (UTC)
- Seconding this. Also, it causes other problems in that whenever I'd be on a mathematical or scientific article, the latex text straight up disappears. An example being "Breadth-first search". Hummerrocket (talk) 14:47, 1 August 2021 (UTC)
- I don't get the coding and it says there is an error. Cwater1 (talk) 20:18, 3 October 2022 (UTC)
This kills latex
[edit]This makes all latex formulas invisible Cowlinator (talk) 21:24, 20 October 2022 (UTC)
Moved from the talk of badimages.js Aaron Liu (talk) 15:52, 30 October 2022 (UTC)
Doesn't work and has bugs
[edit]In addition to killing latex and not working, this also makes the source discussion tools be unable to type or newline without br. Aaron Liu (talk) 15:51, 30 October 2022 (UTC)