Newsgroup: it.comp.lang.javascript
Titolo: Rotation Banner - Problemi con Exlporer 7

Questo script non mi funziona con explorer 7. Con firefox gira benissimo.
Lo script si occupa di far girare random dei banner ogni 10 secondi.
Ogni tanto mi compare questo errore:
Images [...] 3 , è nullo o non è un oggetto.
Sempre lo stesso errore ma a caso, indipendentemente dal banner che sia
caricato o dal numero di rotazioni che sia stato effettuato.
<script>
var images = [
 
			['/banners/bannerOk8.gif','TITOLO’',TITOLO,'
http://www.internet.com?poi=4
'],
 
			['/banners/bannerOk9.gif','TITOLO’',TITOLO,'
http://www.internet.com?poi=4
'],
 
			['/banners/bannerOk11.gif','TITOLO’',TITOLO,'
http://www.internet.com?poi=4
'],
 
			['/banners/bannerOk12.gif','TITOLO’',TITOLO,'
http://www.internet.com?poi=4
'],
 
			['/banners/bannerOk05.gif','TITOLO’',TITOLO,'
http://www.internet.com?poi=4
'],
 
 
				['/banners/bannerOk69.gif','TITOLO’',TITOLO,'
http://www.internet.com?poi=4
'],
];
 
function randomBanner(){
//	Lancio la funzione per caricare un banner
	changeBanner();
//	La rilancio ogni 10 secondi
	setInterval("changeBanner()", 10000);
	}
 
	function changeBanner(){
		//	Numero random intero compreso tra 0 e il limite superiore dell'array
con le immagini
		var rnd = Math.floor(Math.random() * images.length); 
 
	document.getElementById('bannerLink').href = images[rnd][3];
	document.getElementById('bannerLink').title = images[rnd][2];
	document.getElementById('bannerImage').src  = images[rnd][0];
	document.getElementById('bannerImage').alt  = images[rnd][1]
	document.getElementById('bannerImage').title  = images[rnd][2];				
	}
 
 
</script>
//QUI MI VA AD INSERIRE IL BANNER
<body>
		<a id="bannerLink" href="" title=""><img id="bannerImage" src="" alt=""
title="" border=0 height=60px width=468px /></a>
 
</body>
Grazie Massimo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 var images = [
images è una collection predefinita, non è che ti fa casini per questo?
 
http://developer.mozilla.org/en/docs/DOM:document.images
Prova a cambiare il nome all'array
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

 Prova a cambiare il nome all'array
Ho cambiato il nome della collection in "imagestest" ma mi da ancora gli
stessi problemi con explorer 7.
Massimo72


 stessi problemi con explorer 7.
stai guardando la console di firefox? non è che è solo che "ti sembra" che
firefox non segnali errori?


 firefox non segnali errori?
Su Firefox funziona correttamente e nella console non mi segnala nessun
errore.
Massi72


 errore.
proponi una pagina che riproduca l'errore.
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

 proponi una pagina che riproduca l'errore.
Grazie ancora:
Allora adesso l'ho sistemato un attimo (prima con explorer avevo degli
errori perchč nell'array avevo lasciato degli spazi bianchi). Adesso
l'unico errore che si verifica con Explorer č che appena apro la pagina o
la refresho mi compare una x rossa su sfondo bianco.
Questo credo sia dovuto al fatto che explorer 7 non ce la fa a caricare
l'immagine, ma con firefox non si verifica questo errore.
Sapresti dirmi come posso sistemare questo problema?
Grzie.
Qui c'č il codice, salva il file come .html e guarda il risultato.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<title>RANDOM BANNER</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <SCRIPT>
var images = [
		['
http://tbn0.google.com/images?q=tbn:OTl8x0G0P8Y4jM:http://www.microsizers.com/vehicles/hcac0426b-yellow.jpg
','ALT
01','TITLE 01','
http://01.html
'],
		['
http://tbn0.google.com/images?q=tbn:OTl8x0G0P8Y4jM:http://www.microsizers.com/vehicles/hcac0426b-yellow.jpg
','ALT
02','TITLE 02','
http://02.html
'],
		['
http://tbn0.google.com/images?q=tbn:5XXczXugCOVJ_M:http://www.roadfly.com/magazine/5/detroit_auto_show_pictures/images/20-8820596.jpg
','ALT
03','TITLE 03','
http://03.html
'],
		['
http://tbn0.google.com/images?q=tbn:xrw0p20EYbz9oM:http://www.auto-adrenalina.com/AA_Car_Wallpapers/WP61%2520-%2520Ferrari%2520288%2520GTO%2520-%252006.10.2006..jpg
','ALT
04','TITLE 04','
http://04.html
'],
		['
http://tbn0.google.com/images?q=tbn:nGYJM0m1DJ3TfM:http://www.auto-classics.net/files/79ElCamino.jpg
','ALT
05','TITLE 05','
http://05.html
'],
['
http://tbn0.google.com/images?q=tbn:6RCnAOQn565OmM:http://www.auto-classics.net/files/83ElCamino.jpg
','ALT
05','TITLE 05','
http://05.html
']							
	];
function randomBanner(){
		//	Lancio la funzione per caricare un banner
		changeBanner();
		//	La rilancio ogni tot secondi
		setInterval("changeBanner()", 500);
	}
 
	function changeBanner(){
		//	Numero random intero compreso tra 0 e il limite superiore dell'array
con le immagini
		var rnd = Math.floor(Math.random() * images.length); 
 
		document.getElementById('bannerLink').href = images[rnd][3];
		document.getElementById('bannerLink').title = images[rnd][2];		
		document.getElementById('bannerImage').src  = images[rnd][0];
		document.getElementById('bannerImage').alt  = images[rnd][1];
		document.getElementById('bannerImage').title  = images[rnd][2];				
	}
 
 
</SCRIPT>
</head>
<body onLoad="randomBanner();">
<div class="box">
<a id="bannerLink" href="" title="">
<img id="bannerImage" src="" alt="" title="" />
</a>
</div>
</body>
</html>


 <img id="bannerImage" src="" alt="" title="" />
qua puoi o caricare una immagine "loading" nell'src, oppure settare
visibility:
 <img .... style="visibility:hidden"/>
e nella randomBanner, dopo la chiamata a changeBanner(), visualizzarla:
 document.images[0].style.visibility="visible";
Per il tuo problema di "velocità" ci sono varie strade, puoi semplicemente
usare, anziché onload del body, onload della immagine:
<img .... onload="randomBanner()"/>
e nella randomBanner:
 document.images[0].onload=null;
Sopra un po' di spunti, fai un po' di test.
Se ancora non visualizza bene le immagini dovrai fare un preload.
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 onload





-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 document.images[0].style.visibility="visible";
metti una immagine "Loading" all'src iniziale.
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.