Newsgroup: it.comp.lang.javascript
Titolo: Cambiare testo "dinamicamente".... Aiuto!

Salve a tutti,
	questo il mio problmema:
Devo cambiare un valore stringa alla pressione di un pulsante. 
Ad esempio:
<script language="javascript">
function ScriviQualcosa(){
	scrivi = "Ora scrivo questo";
}
</script>
<form name="test">
<input type="button" value="Premi" name="B1"
onClick="ScriviQualcosa();">
</form>
<H1>[contenuto della variabile scrivi]</H1>
oppure:
<form>
<input type="text" size="[contenuto della variabile scrivi]"
name="manuel">
</form>
eccetera.
Ho visto che, con i FORM funziona, ma a me serve un'altra cosa.
<form name="test">
<input type="button" value="Premi" name="B1"
onClick="ScriviQualcosa();">
</form>
<form name="manuelTest">
<center>
<script language="javascript">
function ScriviQualcosa(){
	scrivi = "Ora scrivo questo";
	document.manuelTest.manuel.value = (scrivi);	
}
</script>
<input type="text" size="20" name="manuel">
<h1 id="titolo" class="classeTitolo">
</h1>
</center>
</form>
Il document.write non serve a quello di cui ho bisogno.
La soluzione deve essere javascript 100% compatibile, cioe' non DHTML o
simili. Deve funzionare su 'quasi' TUTTI i browser... 
Se potete aiutarmi ve ne saro' pienamente grato, ringrazio
anticipatamente.
Manuel
-- 
MANUEL CAVALIERI
man...@boraso.it
 		<--|NEW
http://www.asp-it.com/articoli/db/
-------------------------------------------------------
[No T.U.T.]
http://notut.cjb.net
 
no...@icq99.net

Vi prego di avvisarmi se non ne esiste la possibilita.
Grazie di nuovo,
Manuel.

manuel ha scritto:

Con IE puoi inserire nel codice html la stringa da cambiare all'interno del
tag <span> e assegnarli un id:
<html>
<body>
.....
<span id="testo">quello che vuoi</span>
...
</body>
</html>
poi nella funzione js basta che metti
function ScriviQualcosa(){
        testo.innerText= "Ora scrivo questo";
}
Non sono sicuro che questo funzioni anche con Netscape.

 tag <span> e assegnarli un id:
[ ... ]


Per NS credo che bisogna usare il tag <layer>
Per NS un layer è come se fosse una pagina html indipendente, una specie di
frame.
Quindi:
document.layers[n].document.write("testo")
Anche i <div> per netscape sono dei layer, e sono inseriti nell'array
layers[n]
Per IE invece i <div> vanno gestiti come i <span>
Devi quindi creare del codice diverso per IE e NS.
<script language="JavaScript">
<!--
function scriviTesto(testo)
{
    if(navigator.appVersion.substring(0,1)<3)
        alert("Questo browser non supporta le pagine dinamiche")
    else if(navigator.appName=="Microsoft Internet Explorer")
        oggetto.innerText = testo
    else if(navigator.appName=="Netscape")
        document.layers["oggetto"].document.write(testo)
    else
        alert("Boh, per gli altri browser non so come fare")
}
//-->
</script>
CIAO :)
P.S.: questo script l'ho scritto al volo, e non so se funzia!

dell'HTML 3.2.
Adesso vuoi troppo.
:)
Non so: provalo su browsers + vecchi e dimmi...
Ciao.
Darius. (
www.infotronica.it/darius/
)

Il document.write non serve a quello di cui ho bisogno.
ti serve per forza sulla stessa pagina? se dovessi farlo su una pagina
aperta in JS, il problema e' abs semplice, senza nemmeno ricorrere a
Dhtml o simili..
ciao!
-- 
____________________________________
Blow Your Speaker with Rock 'n' Roll
http://members.xoom.com/terzai
(ora diventata IV i)
...tatatatatata Heavy Metal - Bart Simpson

...


Ok, la pagina completa dovrebbe essere così, no?
<html>
<head>
<title>test</title>
</head>
<body>
<script language="JavaScript">
<!--
function scriviTesto(testo)
{
    if(navigator.appVersion.substring(0,1)<3)
        alert("Questo browser non supporta le pagine dinamiche");
    else if(navigator.appName=="Microsoft Internet Explorer")
        oggetto.innerText = testo;
    else if(navigator.appName=="Netscape")
        {
            document.layers["oggetto"].document.write(testo)
            document.layers["oggetto"].document.close();                //
Forse mancava questo... :)
        }
    else
        alert("Boh, per gli altri browser non so come fare")
}
//-->
</script>
<form>
<input type="button" Value="pìgiami" onClick='scriviTesto("Mi hai
pìgiato")'><br><br>
[variante]
<input type="option" Value="pìgiami" name="opt1">
[/variante]
</form>
<div id="oggetto">
</body>
</html>
Pero' provate a guardare la sezione [variante].
Mettete il caso che alla pressione del pulsante debba modifcare il nome o il
valore usando una variabile.
Ad esempio:
<input type="radio" Value="pìgiami" name="opt1"+x>
dove x e' una variabile definita ed incrementata da uno script  javascript.
Si puo' fare una cosa simile? Sempre: SENZA ricaricare la pagina.
Saluti,
--
Manuel
Big Brother
Ps:
Non conosco molto di javascript, quindi mi mancano ancora le varie "malizie"
di programmazione...

dove x e' una variabile definita ed incrementata da uno script  javascript.
Beh, se tanto insisti ti è ancora concesso di incrementare variabili:
    <input type="radio" Value="pìgiami" onclick='this.value="pigiàmi "+ counter++'>
Lo ammetto: non ho capito esattissimamente cosa ti serviva, ma almeno ci sono arrivato vicino?
:)
Ciao.
Darius. (
www.infotronica.it/darius/
)

 </script>
Scusa se mi intrometto, ho provato questa funzione su una pagina che sto
costruendo e va benissimo (era un mese che ci provavo e avevo risolto con un
"form volante", ma e' molto meglio cosi'), solo che c'e' un problema con
netscape: se ridimensiono la pagina lo script non funziona piu' (ma accade
anche per altri script, non solo per questo). Qualcuno ha una soluzione per
questo fatto?
--
ciao
gelty
--
Visita 
http://www.sifor.it
Elimina *toglimi* per le risposte

Lo ammetto: non ho capito esattissimamente cosa ti serviva, ma almeno ci
sono arrivato vicino?
Ciao.
Darius. (
www.infotronica.it/darius/
)

Forse così non darà + problemi (a me per lo meno non ne da...):
<html>
<head>
<title>test</title>
<script language="JavaScript">
<!--
function scriviTesto(testo)
{
    if(navigator.appVersion.substring(0,1)<3)
        alert("Questo browser non supporta le pagine dinamiche");
    else if(navigator.appName=="Microsoft Internet Explorer")
        oggetto.innerText = testo;
    else if(navigator.appName=="Netscape")
        {
  document.layers["oggetto"].document.write(testo);
  document.layers["oggetto"].document.close(); //immancabile!
 }
    else
        alert("Boh, per gli altri browser non so come fare")
}
//-->
</script>
</head>
<body>
<div id="oggetto" style="position:absolute; left:100; top:100;">DDDDD</div>
<form>
<input type="button" Value="pìgiami" onClick='scriviTesto((Math.random()*10).toString())'><br><br>
</form>
</body>
</html>
Ciao.
Darius. (
www.infotronica.it/darius/
)

 wrote in message
7l0eul$4h7$1...@serv1.iunet.it...
Forse così non darà + problemi (a me per lo meno non ne da...):
[...]
Ehm... scusami, cos'e' cambiato? La funzione mi sembra uguale...
O e' che sono stanco? :-)


O e' che sono stanco? :-)
Ah, così sei stanco anche tu, eh? Beh, guarda l'attributo style, con cui lo script gira bene anche sotto NS.
Ciao.
Darius. (
www.infotronica.it/darius/
)