DOM a gyakrolatban, objektumok feltérképezése
Ezt a szkriptet évekkel ezelőtt készítettem amikor még híre-hamva sem volt az AJAXnak, de ma, az AJAX bűvöletében hatványozottan hasznos lehet. IE, Safari, Firefox, Opera? Vágd zsebre mindet!
A gyakrolatban megesik, hogy nem találunk refernciát egy böngészőobjektum pontos működéséről, tagjairól, vagy éppen egy olyan paramétert keresünk, aminek még nem is tudjuk a nevét. Itt a megoldás! Ebben a cikkben egy szkriptet ismertetek, ami sok esetben hazsnos lesz, sőt megkockáztatom, ezután el se tudod képzelni az életed nélküle.
A tulajdonságlistázó szkript
A szkript nem tesz mást, mint felsorolja a paraméterként megadott objektum összes tagját, azok értékeivel. Ez a szkript alapváltozata, bőven továbbfejlesztheti a kedves Olvasó saját igényei szerint, akár egy teljes debuggerré.
function showProps(obj, objName) {
if (typeof(objName) == "undefined")
objName = "object";
var result = "";
for (var i in obj) {
result += objName + "." + i + " = ";
try {
result += obj[i];
} catch (e) {
result += e;
}
result += "\n";
}
var w = window.open("", "w", "width=560,height=450,resizable=yes,scrollbars=yes");
w.document.write("<pre>" + result + "</pre>");
w.document.close();
}
Amint látszik a szkript 2 paramétert vár, az első (obj) maga az objektum, aminek a tartalmát látni szeretnénk, a második az objektum egyfajta "emberbarát" neve, ami egy string, ez lesz kiírva a listában. Pédlául:
showProps(document, "document");
Ami még említést érdemel az, hogy kivételkezelés is be van építve, ha valamelyik tulajdonság elérése során ilyen keletkezne (pl. böngészőhibák mint a Firefox document.domConfig), akkor is hazsnálható legyen ez a kis eszköz.
Végül legyen itt egy működő próba. Ha csak általános információkra van szükséged az adott eseményekről, hasznos lehet a következő kis demonstráció: