Newsgroup: it.comp.lang.javascript
Titolo: [Newbie] alternativa a innerHTML

Salve,
ho un piccolo dubbio.
Faccio un esempio così sono più chiaro: ho una piccola galleria fotografica,
al cliccare sulle miniature mi cambia l'immagine ingrandita sottostante. Fin
qui nessun problema. Voglio che mi cambi anche la didascalia alla foto.
Ecco: se uso innerHTML per cambiare il contenuto del relativo blocco con M$
IE funziona mentre con Mozilla no (e quindi credo nemmeno Netscape), allora
per farlo funzionare uso un form con un campo testo. Adesso funziona ma la
cosa non mi piace: prima di tutto perché mi si vedono i bordi dell'input (mi
devo ingegnare coi css), e poi perché é limitativo, così posso inserire solo
testo non formattato e solo su una riga....(per quello posso al massimo
mettere una text-area)
Conoscete una soluzione alternativa che mi aiuti in tutto questo?
Grazie,
    Mark

 IE funziona mentre con Mozilla no (e quindi credo nemmeno Netscape), 
Facci vedere un po' di codice, perche' deve funzionare, 
forse usi: 
document.all[nomeBlocco].innerHTML ?
-- 
Ciao
  [web]  
www.gfcarlotti.it
    [mail]  use: Reply-To
      [pgp]  
www.gfcarlotti.it/pgp/franco.asc

 document.all[nomeBlocco].innerHTML ?
sě, questa é la funzione
function change_img(immagine,nome)
{
 if (document.images) {
  document.images['lafoto'].src='../img/images/'+immagine;
  }
  document.all.didascalia.innerHTML=nome;
}
e questo é invece dove deve comparire:
<span id="didascalia"></span>
mi piacerebbe anche usarlo in un <div id="didascalia"></div>
in modo da poter aggiungere qualcosa in piů!
Grazie,Mark

 }
</script>
<div id="didascalia" style="quelloCheVuoi"></div>
Praticamente document.all serve solo per IE<5, IE>=5  supporta sia document.all che document.getElementById, 
quest' ultimo e' supportato anche da Opera Mozilla e affini.
Document.layers e' supportato solo da Netscape4.x


 document.layers?document.layers["didascalia"].document.close():null;
Attenzione, ti conviene testare prima document.getElementById e dopo document.all,
altrimenti Opera in modalità IE ti va nei casini
(non bisognerebbe usare la modalità IE infatti, ma è il default...)
MaRoK

 ha scritto nel messaggio
news:P4Cqb.428323$R32.14...@news2.tin.it...

ho capito, grazie ad entrambi. Devo dire che é un peccato che si debbano
usare tante righe di codice solo per un problema di compatibilità... quando
ho scritto il post speravo in qualcosa di più semplice. Peccato! :)
Saluti, Mark

 Saluti, Mark
Se vuoi la compatibilita' con gli standard w3c basta:
document.getElementById("didascalia").innerHTML=nome
-- 
Ciao
  [mail]  use: Reply-To
    [web]   
www.gfcarlotti.it
 
www.gfcarlotti.it/trekking/
      [pgp]  
www.gfcarlotti.it/pgp/franco.asc

 quando ho scritto il post speravo in qualcosa di più semplice. Peccato! :)
Il problema è aggirabile in modo generale, se usi questa funzione:
function oggetto_compatibile(id_oggetto) {
        if (document.layers){
                return document.layers[id_oggetto];
        }
        else if (document.all){
                return document.all[id_oggetto];
        }
        else if(document.getElementById){
                return document.getElementById(id_oggetto);
        } 
}
Quando vuoi entrare in un oggetto mantenendo la compatibilità con il browser
che si sta usando lato client, basta che fai:
oggetto_su_cui_lavorare=oggetto_compatibile(id_oggetto_su_cui_lavorare);
-- 
Ciao,
        Fabrizio
<=- 
http://www.negusweb.it
 -=>