Newsgroup: it.comp.lang.javascript
Titolo: Perche' questa differenza?

Ciao a tutti...
scusate vorrei porgervi una domanda alquanto strana !!!
Ho creato alcune funzioni crossbrowser e le ho inserite in un file esterno
chiamato "engine.js".
La prima funzione regola la data a e l'ora; e funziona benissimo:
Function dataora()
{
    codice ok
}
Successivamente nello stesso foglio inserisco un'altra funzione con delle
variabili global del tipo
var pippo = xxx
var pluto = yyyy
function <nomefunzione>()
{
  codice funzione
}
Mi sapete dire perche' la prima funzione che andava bene, smette di
funzionare quando inserisco al seconda?
Forse che le variabili poste in quel modo creano problemi ?
Se si come posso fare per evitare questo pasticcio?
non dovro mica creare un file js per ogni funzione?
Grazie e scusate la domanda.............
Emanuele

 Grazie e scusate la domanda.............
Di niente, ma se non posti lo script non abbiamo molti dati alla mano per
"diagnosticarti" il problema e trovare la "cura".. ;)

OK !! ecco il codice incriminato....
tenete presente che la prima funzione TimeClock funziona bene senza la
seconda ....
ma non funziona (alemno in IE ) se aggiungo il restante codice
Emanuele
function TimeClock ()
{
if(!document.layers&&!document.all)
return
var Digital=new Date();
var Hour=Digital.getHours();
var minut=Digital.getMinutes();
var second=Digital.getSeconds();
var DH="AM";
if (minut<= 9)
minut="0"+minut
if (second<=9)
second="0"+second
showtime=Hour+":"+minut+":"+second
if (document.layers){
document.layers.liveclock.document.TimerForm.TimerBox.value= showtime;
document.layers.liveclock.document.close()
}
else if (document.all)
TimerForm.TimerBox.value=showtime
setTimeout("TimeClock()",1000)
 }
// Inizio codice per la visualizzazione di scritta animata
var marqueewidth=300
var marqueeheight=20
var speed=6
var marqueecontents='<font color="#4161FA" size="+2"><b>LEGA ITALIANA PER LA
DIFESA DEL GATTO</b></font> <B><font face="Arial" size="2">&nbsp;&nbsp;Via
Pigafetta &nbsp;7 &nbsp;&nbsp;-&nbsp;&nbsp; Tel. 011.581.87.33
&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp; 10121 Torino</font></B>'
if (document.all)
document.write('<marquee scrollAmount='+speed+'
style="width:'+marqueewidth+'">'+marqueecontents+'</marquee>')
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers){
setTimeout("window.onresize=regenerate",300)
intializemarquee()
}
}
function intializemarquee(){
document.cmarquee01.document.cmarquee02.document.write('<nobr>'+marqueeconte
nts+'</nobr>')
document.cmarquee01.document.cmarquee02.document.close()
thelength=document.cmarquee01.document.cmarquee02.document.width
scrollit()
}
function scrollit(){
if (document.cmarquee01.document.cmarquee02.left>=thelength*(-1)){
document.cmarquee01.document.cmarquee02.left-=speed
setTimeout("scrollit()",100)
}
else{
document.cmarquee01.document.cmarquee02.left=marqueewidth
scrollit()
}
}
window.onload=regenerate2

 ma non funziona (alemno in IE ) se aggiungo il restante codice
Ok, avrei pero' bisogno anche della pagina che li richiama.

ok ..ti posto le due pagine che richiamano il codice:
ti rammento che le due pagine sono parte di un frame composito, se ne hai
necessita ti mando anche quello.
Rispettivamente sono il frame del menu quello con l'orologio e il frame
della testata quello con il testo scorevole
pagina 1...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<TITLE></TITLE>
<link rel=stylesheet href="foglio.css" type="text/css">
<script type="text/javascript" language="JavaScript" src="engine2.js">
</script>
</HEAD>
<BODY bgcolor="White" background="../immagini/SfondoMenu02.jpg">
<div class="TF01">
<img src="../immagini/prova01.gif" width=70 height=70 border=0 alt="logo
ECS">
</div>
<div class="TF02">
<img src="../immagini/linea22.gif" width=448 height=72 border=0 alt="linea">
</div>
<ilayer  name="cmarquee01" width=&{marqueewidth}; height=&{marqueeheight};>
<layer name="cmarquee02"></layer>
</ilayer>
</body>
</html>
pagina 2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <title>Menu Laterale</title>
<link rel=stylesheet href="foglio.css" type="text/css">
<script type="text/javascript" language="JavaScript" src="engine2.js">
//-->
</script>
</head>
<body background="../immagini/SfondoMenu02.jpg" onLoad="TimeClock()">
 <span id="liveclock" style="position:absolute;left:15;top:15;">
<form name="TimerForm">
<input type="Text" name="TimerBox" value="" size="8">
</form>
 </span>
<div class="Table_Menu">
<form name="menu">
<table border="0" width="85">
  <tr>
    <td>
 <a href="LegaGatto.htm" target="PaginaCentrale" title="Descrizione
societ&ograve;" onMouseOver="tasto_on('../immagini/LegaRosso.gif', 0)"
onMouseOut="tasto_off('../immagini/LegaNero.gif',0)">
 <img src="../immagini/LegaNero.gif" width="85" height="43" border="0"
alt="La Lega"></a>
    </td>
  </tr>
  <tr>
    <td>
 <a href="Attivita.htm" target="PaginaCentrale" title="Attività Lega Gatto"
onMouseOver="tasto_on('../immagini/AttivRosso.gif',1)"
onMouseOut="tasto_off('../immagini/AttivNero.gif',1)">
 <img src="../immagini/AttivNero.gif" width="85" height="43" border="0"
alt="Attivit&agrave;"></a>
    </td>
  </tr>
   <tr>
    <td>
 <a href="Ricerca.htm" target="PaginaCentrale" title="Ricerca di
collaborazione" onMouseOver="tasto_on('../immagini/CercaRosso.gif',2)"
onMouseOut="tasto_off('../immagini/CercaNero.gif',2)">
 <img src="../immagini/CercaNero.gif" width="85" height="43" border="0"
alt="Ricerca"></a>
    </td>
  </tr>
  <tr>
    <td>
 <a href="Albumfoto.htm" target="PaginaCentrale" title="Album fotografico"
onMouseOver="tasto_on('../immagini/AlbumRosso.gif',3)"
onMouseOut="tasto_off('../immagini/AlbumNero.gif',3)">
 <img src="../immagini/AlbumNero.gif" width="85" height="43" border="0"
alt="Album"></a>
    </td>
  </tr>
  <tr>
    <td>
 <a href="Posta.html" target="PaginaCentrale" title="Modulo Postale"
onMouseOver="tasto_on('../immagini/PostaRosso.gif',4)"
onMouseOut="tasto_off('../immagini/PostaNero.gif',4)">
 <img src="../immagini/PostaNero.gif" width="85" height="43" border="0"
alt="Posta"></a>
    </td>
 </tr>
  <tr>
    <td>
 <a href="PaginaLink.html" target="PaginaCentrale" title="Pagina Motori di
Ricerca" onMouseOver="tasto_on('../immagini/MotoriRosso.gif',5)"
onMouseOut="tasto_off('../immagini/MotoriNero.gif',5)">
 <img src="../immagini/MotoriNero.gif" width="85" height="43" border="0"
alt="Posta"></a>
    </td>
 </tr>
  </table>
</form>
</div>
  <br><br>
</body>
</html>
spero tu ci capisca qualcosa..io ho soltatìnto una idea, ma non so come fare
a implementarla
Emanuele

 <body background="../immagini/SfondoMenu02.jpg" onLoad="TimeClock()">
Ecco qua.
Le funzioni non c'entrano nulla, e' come le invochi che crea casino.
Infatti, tu hai assegnato qui la funzione relativa al timeclock, ma ti sei
scordato che alla fine dello script "engine2.js" avevi aggiunto tale riga:
window.onload=regenerate2
:)
Per questo l'orologio non va'...
Soluzione: Elimina dall'engine2.js tale riga, e aggiungi nel body del primo
frame:
<BODY bgcolor="White" background="../immagini/SfondoMenu02.jpg"
onload="regenerate2();">
mentre nell'altro, quello con l'orologio:
<body background="../immagini/SfondoMenu02.jpg"
onLoad="TimeClock();regenerate2();">
E tutto dovrebbe andarti (almeno su IE, su NS come ti ho detto nel post
precedente credo ci sia qualche problema.. controlla, poi).



Grazie ZERo, vado subito a controllare.....
ma da quello che mi dici, deduco che se ho un file contenente piu' funzioni
devo richiamarle tutte? no, non credo.....
allora perche' nel file dove ho SOLO l'orologio devo richiamare anche la
funzione per la scritta ? e dall'altra parte no!
Visto che sei cosi gentile, forse puoi chiarirmi le idee anche sull'altro
post che ho mandato , e che si chiama CSS & JS in NN....
Ti ringrazio dell'aiuto
Emanuele

 Ti ringrazio dell'aiuto
Di niente, figurati.