Newsgroup: it.comp.lang.javascript
Titolo: window.location in Ns6

Ciao a tutti.
Ho incontrato un problemino in Netscape 6. Ho una pagina con tre frame e voglio cambiarne 2 in un colpo solo. Con Ie 4.x e 5.x e Ns 4.x funziona perfettamente, mentre Netscape 6 ignora il comando Javascript. Ecco il mio codice (scusate è un po' lungo)
<SCRIPT LANGUAGE ="Javascript" src = "style.js"></SCRIPT>
<SCRIPT LANGUAGE="Javascript">
<!--
if (!document.images) {
	var dot = new Image(); dot.src = "Immagini/Menu/dot.gif";
}
ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
ns6 = (document.getElementById)? true:false;
//Show & hide layers
 
function mostra(l) {
        if (ns4)
	       document.layers[l].visibility = 'show';
        if (ie4)
	       document.all[l].style.visibility = 'visible';
	if (ns6)
		document.getElementById(l).style.visibility = 'visible';
}         
function nascondi(l) {
        if (ns4)
	       document.layers[l].visibility = 'hide';
        if (ie4)
	       document.all[l].style.visibility = 'hidden';
	if (ns6)
		document.getElementById(l).style.visibility = 'hidden';
}         
function hp(la,lb,lc,loc) {
	  if (ns4) {
	       parent.frames[0].document.layers[la].visibility = 'show';
	       parent.frames[0].document.layers[lb].visibility = 'hidden';
	       parent.frames[0].document.layers[lc].visibility = 'hidden';
	       window.location.href = loc;
	  }
 
	  if (ie4) {
	       parent.frames[0].document.all[la].style.visibility = 'visible';
	       parent.frames[0].document.all[lb].style.visibility = 'hidden';
	       parent.frames[0].document.all[lc].style.visibility = 'hidden';
	       window.location.href = loc;
	  }
	  if (ns6) {
	       parent.frames[0].document.getElementById(la).style.visibility = 'visible';
	       parent.frames[0].document.getElementById(lb).style.visibility = 'hidden';
	       parent.frames[0].document.getElementById(lc).style.visibility = 'hidden';
	       window.location.href =  loc;
	  }
 
}
function msg(m) {
        window.status = m
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<DIV ID="sfondo" STYLE="position:absolute;top:0;left:0,width:150;height:300;z-index:1">
<IMG SRC="images/sfondi/left.jpg" width="149" height="300">
</DIV>
<DIV ID="consulenza" style="position:absolute;top:80;left:2;width:105;height:18;visibility:visible;z-index:2">
<A HREF="consulenza.html" TARGET="center" 
onMouseOver="mostra('dot1');msg('Consulenza');return true" 
onMouseOut="nascondi('dot1');msg(''); return true"
onClick="hp('consulenza','home','produzione','
http://www.vedovetto.com/consulenza/menuconsulenza.html'
)">
<IMG SRC="images/menu/consulenza.gif" BORDER="0" width="105" height="18">
</A></DIV>
<DIV ID="dot1" style="position:absolute;top:80;left:109;width:24;height:18;visibility:hidden;z-index:3">
<IMG src="images/menu/dot.gif"  border=0 width="24" height="18" name="dot">
</DIV>
Nescape 6 in questo modo non cambia il file di questo frame.
Gestendo tutti e due i file con Js funziona perfettamente. Mi viene il dubbio che qualcosa non funzioni sull'evento onClick
<SCRIPT LANGUAGE="JavaScript">
<!--
function test(menu,file) {
	parent.frames[2].location.href = file;
	window.location.href =  menu;
}
//-->
</SCRIPT>
<DIV ID="consulenza" style="position:absolute;top:80;left:2;width:105;height:18;visibility:visible;z-index:2">
<A HREF="javascript:test('consulenza/menuconsulenza.html','consulenza.html')" TARGET="center" 
onMouseOver="mostra('dot1');msg('Consulenza');return true" 
onMouseOut="nascondi('dot1');msg(''); return true"
<IMG SRC="images/menu/consulenza.gif" BORDER="0" width="105" height="18">
</A></DIV>
Qualcuno sa dirmi dove ho sbagliato? Ho perso diverse ore(!) a leggere e rileggere il codice, non non ho trovato niente.
Grazie
Francesco
---
Mail inviata con il servizio WebMail di Wappi
Connetti ad internet il tuo telefonino: 
http://www.wappi.com/
Wappi e' un servizio di Virtex Communications 
http://www.virtex.it/
-- 
Posted from IDENT:qmailr@[194.243.91.42] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Indubbiamente non č window.location che non funziona perchč nel secondo modo funziona tutto correttamente. Il problema č nell'evento onClick. Cambia qualcosa in Netscape 6 per quanto riguarda la gestione degli eventi?


Gestendo tutti e due i file con Js funziona perfettamente. Mi viene il
dubbio che qualcosa non funzioni >sull'evento onClick
[]
Non e' un problema del gestore dell'evento e nemmeno che NS6 ignori il
comando in javascript; sfortunatamente (per come siamo abituati), non
accetta di sostituire la pagina che deve ancora rispondere all'href ;
come avrai provato, se con lo script cambi la pagina in *center* e con
l'href la pagina chiamante oppure se cambi nello script il frame[0],
funziona tutto correttamente.
Non ho trovato altri riferimenti a riguardo.
Saluti, Paolo