Benutzer:Revolus/gallerySize.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
document.addEventListener('DOMContentLoaded', function() {
	if(typeof(gallerySize) === "undefined") {
		gallerySize = 120;
	}
	if(typeof(galleryBorder) === "undefined") {
		galleryBorder = 30;
	}
	var pattern = /^(.*\/)([1-9]+[0-9]*)(px[^\/]+)$/;
	var galleries = document.getElementsByClassName("gallerybox");
	for(var i = 0; i < galleries.length; ++i) {
		var images = galleries[i].getElementsByTagName("img");
		for(var j = 0; j < images.length; ++j) {
			var img = images[j];
			var src = img.getAttribute("src");
			var e = pattern.exec(src);
			if(e) {
				var p = img.parentNode;
				var imgN = document.createElement("img");
				imgN.setAttribute("src", e[1] + Math.round(gallerySize * Number(e[2]) / 120) + e[3]);
				
				imgN.onerror = (function(imgN, img) {
					return (function() {
						imgN.onerror = "";
						imgN.parentNode.replaceChild(img, imgN);
						return false;
					});
				})(imgN, img);
				
				(p = p.parentNode).style.width = (gallerySize + galleryBorder) + "px";
				p.style.padding = "0";
				(p = p.parentNode).style.width = (gallerySize + 2*galleryBorder) + "px";
				p.parentNode.style.width = (gallerySize + 2*galleryBorder + 5) + "px";
				
				img.parentNode.replaceChild(imgN, img);
			}
		}
	}
}, false);