Newsgroup: it.comp.lang.javascript
Titolo: DOM - leggere le informazioni sugli stili

Premetto che non sono proprio praticissimo di DOM quindi sicuramente
mi sfuggirà qualche passaggio che proprio non riesco ad immaginarmi ma
che per un 'addetto ai lavori' è ovvio ed immediato.
Ho un div e con una classe css gli dò un immagine di sfondo. Trammite
javascript vorrei arrivare a leggere l'url del background ed
eventualmente modificarlo.
Chiaramente non funziona, mi ritorna una stringa vuota e se tramite un
tool di firefox (firebug) faccio la navigazione DOM vedo che quella
proprietà è (secondo lui) davvero vuota (come anche tutte le altre a
dire il vero).
Dove sbaglio?
[HTML]
<div id="contactBar"> ... </div>
[css]
#contactBar{
position:absolute;
background-image:url(../img/contacts.png);
...
}
[javascript]
alert(document.getElementById('contactBar').style.backgroundImage="");

 eventualmente modificarlo.
dai una lettura qua:
 
http://www.criosoftware.it/default26.aspx
 
http://www.criosoftware.it/default23.aspx
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

Grazie per gli esempi!
Mi han fatto capire intanto che  dovevo usare "currentStyle" invece
che "style".
però è sorto un altro problema...
	alert("[1] " +
getComputedStyle(document.getElementById('contactBar'),'').backgroundImage);
	alert("[2] " +
document.getElementById('contactBar').currentStyle.backgroundImage);
queste due notazioni secondo me sono identiche... ma secondo firefox
(e conqueror) no, sotto ie ed opera funziona... perchè? dove sbaglio?
[quoto la getComputedStyle]
if(typeof window.getComputedStyle!="function"){
  window.getComputedStyle=function(elt,pseudoElt){
   return (elt!=null && typeof elt.currentStyle=="object")?
elt.currentStyle:null;
  } //creo la getComputedStyle se il browser non la supporta
 } //vedo se esiste già

 (e conqueror) no, sotto ie ed opera funziona... perchè? dove sbaglio?
Leggi su.
Se currentStyle fosse stato uno standard, avrebbe avuto senso che
ci fosse anche un metodo standard getComputedStyle? E soprattutto
sarebbe stato necessario scrivere del codice per adeguare IE? :)
-- 
~ Io ho una filosofia semplice:
Riempi ciò che è vuoto. Vuota ciò che è pieno. Gratta ciò che prude.
(A. R. Longworth)

 sarebbe stato necessario scrivere del codice per adeguare IE? :)
chiaro, allora però ti spiego il problema per il quale cercavo una
notazione standard:
non devo solo leggere ma devo anche scrivere, stavo cercando di farmi
una "setComputedStyle" per IE solo che mentre la 1) funziona la 2) non
funzica
1)
alert(document.getElementById('contactBar').currentStyle.backgroundImage);
2)
document.getElementById('contactBar').currentStyle.backgroundImage="";

 stavo cercando di farmi una "setComputedStyle" 
Se è computed, è in sola lettura. :)
-- 
~ "Solo i morti hanno visto la fine della guerra."
(Platone)

 Se è computed, è in sola lettura. :)
il punto era che
document.getElementById('contactBar').style.backgroundImage="";
non faceva un accidenti di niente, effettivamente un
document.getElementById('contactBar').style.backgroundImage="none";
è molto più utile allo scopo :P
tnx again

 tnx again
De nada.
-- 
~ "Uccidere è proibito, quindi tutti gli assassini vengono puniti,
a meno che non uccidano su larga scala e al suono delle trombe."
(Voltaire)

 con il display degli elementi TR in modo crossbrowser :)
L'ho dovuta rileggere 3 volte per capirla :P confesso che stavo per
insultarti! Non che non fosse chiaro, solo che mi si stavano
mischiando i pensieri!
E quì ho finalmente capito perchè nel DOM della pagina non compare
nessuno style mentre in realtà che ne sono una marea.

 nessuno style mentre in realtà che ne sono una marea.
Qui non ti capisco molto bene io invece, quando parli di "DOM". Ma
suppongo tu ri rifaccia al discorso di cui prima, ovvero che style
si riferisce allo style "inline"; e quindi non "vedi", in lettura,
le regole impostate da stylesheet.
Ed è lì per l'appunto che subentra il computedStyle :)
Bon, esco dall'ufficio che son cotto. Buon weekend a tutti, e alla
prossima.
-- 
~ "La realtà è ciò che, quando smetti di crederle, non va via."
(Philip K. Dick)

 prossima.
Buon week-end anche a te (anche se ormai è praticamente finito :P)