Newsgroup: it.comp.lang.javascript
Titolo: Alcuni problemi..........

.......e spero che qualcuno di degni di rispondermi, dal momento che già da
un po' di tempo non trovo un'anima pia che si degni di rispondere. I
problemi sono 2
1) nel mio caso, window.alert(navigator.appVersion) restituisce il seguente
risultato
4.0 (compatible; MSIE 5.0; Windows NT)
volevo chiedere una cosa, anche se puo' sembrare banale: io utilizzo IE5, ma
come si fa a vederlo da questa stringa? Perche compatibile? Dovrei
estrapolare la versione di IE, in quanto un mio script pare che voglia
solamente IE5, in quanto il 4 sembra impotente sul DHTML........
2) il setTimeout si comporta in modo strano. Vi riporto una funzione che si
occupa dell'alternarsi di alcuni messaggi testuali opportunamente filtrati
da IE
function StampaMessaggio()
{
 window.alert(i);
 if (x == i)
 {
  x = 0;
 }
 else
 {
  x++;
 }
 message.filters[0].apply();
 message.style.visibility = "";
 message.innerText = Messaggi[x];
 message.filters[0].play();
 mytimeout = setTimeout("StampaMessaggio()",6000);
}
Nulla di più semplice. La funzione viene chiamata da un'altra, e vengono
passao il valore di i, calcolato in modo "dinamico" a seconda dei dati
inseriti alla prima funzione. Ora, la funzione StampaMessaggio, quando la
pagina in cui è inserita insieme al resto dello script comincia a contenere
un po' più di 4 righe di HTML (e questa è la cosa veramente più
sorpendente), mi resetta il valore di i ad 1, appena richiama la stessa
funzione (???????). Non so se avete capito, quindi cercherò di spiegarmi
meglio. Se apro il notepad e inserisco
<html>
<head>
</head>
<body>
<script src="c:/signmail.js"></script>
<script language="JScript"><!--
   QUI C'E' LO SCRIPT
file://--></script>
</body>
</html>
dove in QUI C'E' LO SCRIPT (che non riporto perchè troppo lungo) ci sono le
funzioni che vengono opportunamente chiamate (e che sono specificare in
signmail.js), tra le quali quella che stampa il messaggio, tutto va bene e
tutto funziona come deve
Se mi azzardo ad inserire lo script in una pagina html un po' più estesa di
quella citata (+ di 4 righe di codice, circa), non si sa bene perchè la
chiamata della funzione StampaMessaggio() attraverso il setTimeout mi
imposta automaticamente i = 1, facendomi andare tutto in loop infinito e
comportando non pochi casini, come si puo' capire. La cosa grave (e anche
piuttosto triste) e che mi sfugge il motivo di questo comportamento bizzarro
del setTimeout, che sembra essere sensibile al codice HTML....... Se
qualcuno saprebbe dirmi il perchè di questo comportamento, consigliarmi come
evitare che succeda o consigliarmi una strada secondaria che sostituisca il
setTimeout, lo ringrazio anticipatamente
--
bye by Neo
webmaster de "la homepage di Neo"
http://web.tiscalinet.it/neowebpage

Fra l'altro
<script src="c:/signmail.js">
??
c:\\
--
Bye
Ro<*¿*>berto

 funzione (???????).
Spero di non sbagliarmi, ma mi pare di vedere, nella funzione, un errore di
logica: infatti nella funzione
function StampaMessaggio()
ci metti un richiamo a
mytimeout = setTimeout("StampaMessaggio()",6000);
cioe' in pratica hai una funzione che richiama se stessa. Potrebbe essere
questo che causa i tuoi problemi.
Spero di essere stato d'aiuto.
--
ciao
gelty
--
Visita 
http://www.sifor.it
Elimina *toglimi* per le risposte

 wrote in message
news:7q073j$v1q$1...@diesel.cu.mi.it...
