Newsgroup: it.comp.lang.javascript
Titolo: [lungo] onmouseover su layer??

Salve!
Premettendo che non so niente di java ne di java script, è da due giorni che
smanetto con vari script per cercare di far apparire un layer al passaggio
del mouse sopra un altro layer...
Con qualche compromesso sono riuscito ad ottenere l'effetto voluto (ho
dovuto mettere una gif trasparente dentro il layer perchè si vedesse
l'immagine sottostante e andasse la funzione onmouseover), e tutto contento
ho messo on-line le nuove pagine del mio sito...
MA! L'o script non funziona con netscape 4.7 (non ho provato altre
versioni... ho solo questa!).
Da cosa dipende? Da netscape? Dallo script? Dal casino che ho fatto per fare
andare la funzione onmouseover?
Qui sotto c'è lo script, se volete vedere il casino che ho fatto andate al
sito sotto la firma e passate col mouse su "bacheca virtuale".
C'è qualche soluzione al problema? Vi ringrazio infinitamente!!!!!!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<SCRIPT language=Javascript>
n4=(document.layers) ? true : false
e4=(document.all)? true:false
function Pop(bacheca){
 if(n4) document.layers[bacheca].visibility="show"
else if (e4) document.all[bacheca].style.visibility="visible"
}
function Wop(bacheca){
if (n4) document.layers[bacheca].visibility = "hide"
else if (e4) document.all[bacheca].style.visibility = "hidden"
}
</SCRIPT><STYLE type=text/css>
A:link { COLOR: blue; TEXT-DECORATION: none }
A:visited { COLOR: blue; TEXT-DECORATION: none }
A:active { COLOR: blue; TEXT-DECORATION: none }
A:hover { COLOR: blue; TEXT-DECORATION: none }
</style>
<div id=menubacheca onMouseOver=Pop('bacheca') style="LEFT: 398px; WIDTH:
100px; COLOR: none; POSITION: absolute; TOP: 117px; height: 19px; z-index:
7" onMouseOut=Wop('bacheca')><img src=data/img/menubacheca.gif width=100
height=14></div>
<div id=bacheca onMouseOver=Pop('bacheca') style="Z-INDEX: 8; LEFT: 401px;
WIDTH: 70px; COLOR: none; POSITION: absolute; TOP: 130px; TEXT-ALIGN: right;
height: 38px; overflow: hidden; visibility: hidden"
onMouseOut=Wop('bacheca')> <div align=left> <font size=-4 face="Calisto MT">
<a href=data/pages/esami.html>ESAMI</a><br> <a
href=data/pages/didattica.html>DIDATTICA</a><br> <a
href=data/pages/libri.html>LIBRI</a> <br> <a
href=data/pages/feste.html>FESTE</a> </font></div></div>
XXXXXXXXXXXXXXXXXXXXXX
--
|Pippus| con XJ600S DIVERSION
|Pippus| con Ibanez TR50
http://digilander.iol.it/Biotechnology
icq#: 28059136

Ti premetto che non ho testato il tuo script, ma a occhio gli errori
sembrano almeno due:
1) document.layers["bacheca"]: quando usi gli array associativi devi passare
allo script il nome del layer tra virgolette;
2) quando chiami la funzione in modo parametrico devi mettere tra parentesi
il nome effettivo dell'oggetto cui si riferisce;
    quindi devi scrivere onMouseOver = "Pop(menubacheca);" onMouseOut =
"Wop(menubacheca);" e per l'altro layer, ovviamente, sarà:
    onMouseOver = "Pop(bacheca);" ecc.ecc.
Così dovrebbe funzionare anche in Netscape che notoriamente è molto più
severo di IE in fatto di sintassi.....
-- 
Posted from [193.76.148.71] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 severo di IE in fatto di sintassi.....
Ti ringrazio tantissimo, questi suggerimenti mi saranno piů che utili!!
Purtroppo, nonostante le correzioni, il problema sussiste... e non ho
proprio idea di come risolverlo!!
grazie comunque!
ciao!


Scusa se ti ho confuso le idee...la soluzione è molto semplice: nel tuo
codice originale devi solo modificare il riferimento al layer nella parte di
codice che si occupa di Netscape:
<SCRIPT language=Javascript>
n4=(document.layers) ? true : false
e4=(document.all)? true:false
function
acheca){   
 if(n4) document[bacheca].visibility="show"      /* VEDI LA MODIFICA ?--------------------------*/
else if (e4) document.all[bacheca].style.visibility="visible"
}
function Wop(bacheca){
if (n4) document[bacheca].visibility = "hide"    /* STESSO DISCORSO......-------------------------*/
else if (e4) document.all[bacheca].style.visibility = "hidden"
}
</SCRIPT>
