Newsgroup: it.comp.lang.javascript
Titolo: funzione changeImages solo su IE

Salve a tutti,
ho il seguente codice html:
<a onmouseover="su('8')" href="pagina.html">
<img src="immagine.jpg">
</a>
L'obiettivo che voglio ottenere è quello di cambiare immagine al
passaggio del mouse.
Il problema è che il tutto funziona con IE ma non con firefox.
Suppongo che il problema risieda nella funzione findElement e nel
diverso modo con cui vengono gestiti gli oggetti in IE e in firefox.
Qualcuno sa darmi un consiglio su dove cominciare a dare un'occhiata ?
Grazie
---Cut
userAgent = window.navigator.userAgent;
 browserVers = parseInt(userAgent.charAt(userAgent.indexOf("/")+1),10);
mustInitImg = true;
function su(me){
	if (me!=attuale){
	changeImages('nome'+me,'../images/rollmenu_ita/'+me+'b.jpg');
	return true;
	}
}
function changeImages() {
d = document;
if (d.images) {
	var img;
	for (var i=0; i<changeImages.arguments.length; i+=2) {
		img = null;
		if (d.layers) {
			img=findElement(changeImages.arguments[i],0);
		} else {
			img = d.images[changeImages.arguments[i]];
		}
		if (img) {
			img.src = changeImages.arguments[i+1];
		}
	}
}
}
 function findElement(n,ly) {
	d = document; 	
	if (browserVers < 4)	return d[n]; 	
	f ((browserVers >= 6) && (d.getElementById)) {
		initImgID; return(d.getElementById(n))};  	
		var cd = ly ? ly.document : d; 	var elem = cd[n]; 	
		if (!elem) {
			for (var i=0;i<cd.layers.length;i++) {
				elem = findElement(n,cd.layers[i]); 							if (elem) return elem; 		
			} 	
		} 	
	return elem;
 }

 Il problema è che il tutto funziona con IE ma non con firefox.
perfetto: firefox ha la sua console che ti indica esattamente in che riga e
colonna si trova l'errore...cosa dice?
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 colonna si trova l'errore...cosa dice?
il bello è che la console javascript di firefox non dice proprio nulla !
Nè sotto avvisi, nè sotto errori insomma da nessuna parte...

 il bello è che la console javascript di firefox non dice proprio nulla !
un po' di alert qua e là per vedere dove arriva?
function changeImages() {
d = document;
if (d.images) { //qua firefox ok
	var img;
	for (var i=0; i<changeImages.arguments.length; i+=2) {
		img = null;
		if (d.layers) { //qua firefox non passa, ergo la findElement non viene
eseguita da firefox (solo da netscape4)
			img=findElement(changeImages.arguments[i],0);
		} else { //firefox arriva qua
			img = d.images[changeImages.arguments[i]];
		}
		if (img) {
			img.src = changeImages.arguments[i+1];
		}
	}
}
}
boh, così a naso io non vedo errori.
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

 un po' di alert qua e là per vedere dove arriva?
mmm c'è decisamente qualcosa che non va: ho aggiunto un alert nella
funzione su e su IE funziona, su Firefox proprio per nulla.
Sembra che firefox non ci provi nemmeno a lanciare la funzione javascript !
E' possibile che ci sia qualcosa che non va nel modo con cui ho incluso
lo script ?
Ecco qui:
<csscriptdict import>
			<script type="text/javascript"
src="../GeneratedItems/CSScriptLib.js"></script>
		</csscriptdict>
		<csactiondict>
		<script type="text/javascript">
var attuale =(0);
function su(me)
	{
	alert('ciao'); // funzione su IE su firefox no !!
	if (me!=attuale){
	changeImages('nome'+me,'../images/rollmenu_ita/'+me+'b.jpg');
	return true
	}}
 
function giu(me)
	{
	if (me!=attuale){
	changeImages('nome'+me,'../images/rollmenu_ita/'+me+'a.jpg');
	return true
	}}
 
function cli(me)
	{
	if (me!=attuale){
	changeImages('nome'+attuale,'../images/rollmenu_ita/'+attuale+'a.jpg');
	changeImages('nome'+me,'../images/rollmenu_ita/'+me+'c.jpg');
	attuale =(me);
	return true
	}}
 
</script>
</csactiondict>

 		<csactiondict>
idem
