Newsgroup: it.comp.lang.javascript
Titolo: Modificare lo stile dei tag con ID

Ciao a tutti,
non riesco a capire come fare a modificare lo stile di un tag HTML che ha un
ID.
Se ad esempio ho questo codice HTML:
-----cut here-----
<DIV ID="s1" STYLE="color: red">Prova</DIV>
-----cut here-----
e voglio programmaticamente (diciamo con un bottone) cambiare il colore
della scritta in blu, io faccio:
-----cut here-----
<FORM>
<INPUT TYPE="button" VALUE="BLU" onClick="document.all.s1.style.color =
'blue';">
</FORM>
-----cut here-----
Questo funziona molto bene con Explorer, ma non funziona affatto con
Netscape.
Ho provato con "document.ids.s1.color = 'blue';" (discriminando in base al
browser), ma non funziona lo stesso.
Qualcuno sa come si fa?
Grazie per l'aiuto.
--
**** 1000 KBye ****
 [) /\ |\| |_ ()

Ciao,
ti suggerisco di usare i layer sui quali
cambi alcuni valori dello style ..
oppure si dovrebbero usare azioni tipo:
 with (document.ids.s1){ borderWidths="2pt";
borderStyle="outset";borderColor="LIGHTBLUE";
backgroundColor="yellow"; }
//   poi un
resizeBy(-1,-1);resizeBy(1,1);
cioè fai in qualche modo ricaricare la pagina da netscape
e speri che tutto vada per il meglio ...
--
Bye
        Ro<*¿*>berto

 e speri che tutto vada per il meglio ...
Non funziona (ho provato con questo codice, solo per Netscape):
-----cut here-----
<HTML>
<HEAD>
<TITLE>Prova</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<DIV ID="s1" STYLE="color: red;">Prova</DIV>
<FORM>
<INPUT TYPE="button" VALUE="BLU" onClick="with (document.ids.s1) {color =
'blue';}; resizeBy(-1,-1); resizeBy(1,1);">
</FORM>
</BODY>
</HTML>
-----cut here-----


non resta che aspettare N6
 :(


la soluzione c'e' ( e senza aspettare N6)... anche se e' un po macchinosa
primo problema: il layer deve aver la position: absolute e le sue
coordinate top e left
secondo problema: il metodo per modificare il colore di un layer in
netscape implca l'apertura del doc layer (document.open()) e la riscrittura
del suo contenuto.
per evitare di dover riscrivere tutto il codice, si deve giogare su di uno
sile SPAN.colore_che_ci interessa, in questo caso blue
qui di seguito il codice di una pagina esempio funzionante su NS e IE x Mac
(e penso anche x WIN senza problemi)
ciao
aldo (
http://www.gruppo4.com
)
-------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/REC-html40/loose.dtd
">
<HTML>
<HEAD>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=iso-8859-1">
<TITLE>controllo Form</TITLE>
<SCRIPT TYPE="text/javascript"><!--
/****************************************************************
DHTML - LAYERCOLOR()
Script from 
sup...@gruppo4.com
 - 
http://www.gruppo4.com
You can use this code if you leave this message
****************************************************************/
varns4=(document.layers)? true:false
varie4=(document.all)? true:false
function layerWrite(id,myColor){
if(ns4){
document.layers[id].document.open();
document.layers[id].document.write('<SPAN CLASS=\"'+myColor+'\">Prova<\/SPAN>');
document.layers[id].document.close();
}
else if(ie4) {document.all[id].style.color=myColor}
}
//-->
</SCRIPT>
<STYLE TYPE="text/css"><!--
#s1 {
position: absolute;
top: 10px;
left: 50px;
color: #f00;
visibility: visible;
}
.blue {
color:#00f;
}
#formLayer {
position: absolute;
top: 40px;
left: 10px;
visibility: visible;
}
//-->
</STYLE>
</HEAD>
<BODY>
<!-- layer -->
<DIV ID="s1">Prova</DIV>
<!-- form -->
<DIV ID="formLayer">
<FORM>
<INPUT TYPE="button" VALUE="BLU" ONCLICK="layerWrite('s1','blue')">
</FORM>
</DIV>
</BODY>
</HTML>
--
Posted from 
DNS.GRUPPO4.COM
 [193.70.107.66] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

piccola correzione alla mail precendente
era saltato lo spazio tra var e ns4 e var e ie4
ciao
aldo
var ns4=(document.layers)? true:false
var ie4=(document.all)? true:false


 era saltato lo spazio tra var e ns4 e var e ie4
Ciao Aldo, ti ringrazio molto per l'aiuto, ma... a te funziona?
No perche' io ho copiato e incollato il codice in un file HTML, ho aggiunto
i due spazi, ma continua a non funzionarmi in Netscape. Ho provato con le
versioni 4.72 e 4.51.
Cosa ho sbagliato? Non capisco!


funziona, ma cambia il colore al testo,
non al pulsante .....




 Ciao Aldo, ti ringrazio molto per l'aiuto, ma... a te funziona?
Ho trovato l'inghippo, bisognava cavare i due "file:".
Grazie mille.
