lunedì 4 agosto 2008

Come recuperare lo stile con il DOM

Ecco il codice di una interessante funzione javascript da usare se si vuole recuperare il valore di una proprietà di stile non settata tramite l'attributo style (inline style), ma settata su fogli esterni, tramite inclusione tipo <link rel=…> oppure con la direttiva @import. Addirittura la proprietà può pure non essere mai stata settata dallo sviluppatore e comunque ne viene recuperato il valore. Molto utile ad esempio per recuperare la larghezza o l'altezza di un paragrafo.


// funzione per recuperare lo stile da fogli di stile esterni o
// se lo stile non e stato proprio settato
// 'el' e l'elemento di cui si vuole conoscere lo stile
// 'propCss' e la proprieta di cui si vuole conoscere il valore
// non funziona con le scorciatoie tipo border o background
function retrieveProperty(el, propCss){
// setto la var con il valore della proprieta
var propVal = null;
// questo per firefox
if(document.defaultView && document.defaultView.getComputedStyle){
// accedo allo stile
var stile = document.defaultView.getComputedStyle(el, null);
// se funziona il recupero
if(stile) {
// recupero il valore della proprieta desiderata
propVal = stile.getPropertyValue(strCssRule);
} else {
propVal = null;
}
}
// questo invece per IE
else if(el.currentStyle){
propCss = propCss.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
// recupero il valore della la proprieta
propVal = el.currentStyle[propCss];
}
// variabile di ritorno
return propVal;
}

0 commenti: