Das Script berechnet die Gesamtfläche aller Grafiken im Dokument. Berücksichtigt werden hierbei
Zurückgeliefert wird die Gesamtfläche in Quadratpixel.
Quellcode zeigen/verstecken/* ****************************************************************************************** * * Das Script kann frei verwendet werden, dieser Kommentar sowie die Nennung des Nicks * und der URL müssen jedoch erhalten bleiben. * * (c) Quaese (www.quaese.de), 2009 * ****************************************************************************************** */ function calcGraphicsArea(){ // Fläche var intArea = 0; // Alle Elemente ermitteln var arrElems = (navigator.userAgent.toLowerCase().indexOf("msie") != -1) ? document.all : document.getElementsByTagName('*'); // Alle Elemente durchlaufen for(var i=0; i<arrElems.length; i++){ // Falls es sich um ein IMG-Element handelt -> Dimensionen multiplizieren if(arrElems[i].nodeName.toLowerCase() == "img"){ intArea += (parseInt(arrElems[i].width) * parseInt(arrElems[i].height)); }else{ // Hintergrundbild-Eigenschaft auslesen var strBG = readStyles(arrElems[i], 'background-image', 'backgroundImage'); // Falls das Element ein Hintergrundbild besitzt if(strBG != 'none'){ // URL extrahieren var arrErg = strBG.search(/url\(([^\)]+)/); var strURL = RegExp.$1; // Falls die URL in Anführungszeichen angegeben ist if(strURL.charAt(0) == "\"") strURL = strURL.substr(1, strURL.length-2); // Hilfelement var objImg = new Image(); objImg.src = strURL; // Wiederholeigenschaft ermitteln var strRepeat = readStyles(arrElems[i], 'background-repeat', 'backgroundRepeat'); // Falls das Hintergrundbild wiederholt wird if(strRepeat == 'repeat'){ intArea += arrElems[i].offsetWidth * arrElems[i].offsetHeight; }else if(strRepeat == 'repeat-y'){ intArea += parseInt(objImg.width) * arrElems[i].offsetHeight; }else if(strRepeat == 'repeat-x'){ intArea += arrElems[i].offsetWidth * parseInt(objImg.height); }else if(strRepeat == 'no-repeat'){ intArea += parseInt(objImg.width) * parseInt(objImg.height); } // Falls es sich um einen grafischen Button handelt }else if((arrElems[i].nodeName.toLowerCase() == "input") && (arrElems[i].type="image")){ // Hilfelement var objImg = new Image(); objImg.src = arrElems[i].src; intArea += parseInt(objImg.width) * parseInt(objImg.height); } // ENDE - if(strBG != 'none') } // ENDE - if(arrElems[i].nodeName.toLowerCase() == "img") } // ENDE - for(var i=0; i<arrElems.length; i++) return intArea; } function readStyles(objElem, strCSS, strCSS_JS){ var strReturn; // Falls der Brower die Methode "getComputedStyle" kennt (W3C-DOM) if(window.getComputedStyle){ strReturn = window.getComputedStyle(objElem, null).getPropertyValue(strCSS); // Falls der Browser die Methode "currentStyle" kennt (neuere IEs) }else if(objElem.currentStyle){ strReturn = objElem.currentStyle[strCSS_JS]; } return strReturn; }
Ein Absatz
Noch ein Absatz
Letzer Absatz
ENDE