Funktion aufruf

Pantalaimon

Mitglied
Hallo Zusammen,

ich habe in einer Webseite das das folgende Script verbaut:
Code:
<img src="" name="Rotating" id="Rotating1" width=100 height=100>
<img src="" name="Rotating" id="Rotating2" width=100 height=100>
<script language="Javascript">
var ImageArr1 = new Array("bild1.jpg","bild2.jpg"); 
var ImageHolder1 = document.getElementById('Rotating1'); 
var ImageArr2 = new Array("bild3.jpg","bild4.jpg","bild5.jpg"); 
var ImageHolder2 = document.getElementById('Rotating2'); 
function RotateImages(whichHolder,Start) 
{ 
var a = eval("ImageArr"+whichHolder); 
var b = eval("ImageHolder"+whichHolder); 
if(Start>=a.length) Start=0; b.src = a[Start]; 
window.setTimeout("RotateImages("+whichHolder+","+(Start+1)+")",1500); } RotateImages(1,0); 
RotateImages(2,0);
</script>
Dies funktioniert auch wunderbar. Allerdings liegt dieser Code im <body> der html Datei. Kopiere ich diesen Code nun in den <head>-Bereich, dann kann diese Funktion nicht ausgeführt werden. Wahrscheinlich liegt es daran, dass ich die Funktion nicht aufrufen kann(habe es schon mit onLoad versucht), weiss hier allerdings nicht weiter.

Würde mich freuen, wenn es mir jemand erklären könnte.

Gruß
Pantalaimon
 
Hi,

wenn Du das Script im Header aufrufst, existieren die Bildelemente noch nicht. Deshalb kann das Ganze nicht
funktionieren. Als Lösung kannst Du die notwendigen Objekte in einer Funktion im onload-Event erstellen. In
dieser Routine wird auch die Funktion RotateImages aufgerufen.
Code:
<script type="text/javascript">
  <!--
function RotateImages(whichHolder,Start){
	var a = eval("ImageArr"+whichHolder);
	var b = eval("ImageHolder"+whichHolder);
	if(Start>=a.length)
  	  Start=0;

        b.src = a[Start];
	window.setTimeout("RotateImages("+whichHolder+","+(Start+1)+")",1500);
}

window.onload = function(){
	ImageArr1 = new Array("bild1.jpg","bild2.jpg");
	ImageHolder1 = document.getElementById('Rotating1');
	ImageArr2 = new Array("bild3.jpg","bild4.jpg","bild5.jpg");
	ImageHolder2 = document.getElementById('Rotating2');

	RotateImages(1,0);
	RotateImages(2,0);
}
 //-->
</script>
Ciao
Quaese
 
Vielen Dank für deine Antwort.
Ich melde mich leider etwas arg spät, konnte mich aber zeitlich nicht fürher um deine Antwort kümmern.

Ich habe wie von dir geschrieben, die Funktion in den Header gesetzt, bekomme aber die Funktion aber nicht im Body zum laufen. Wo genau muss ich den Funktionsaufruf unterbringen?

Danke und Gruß
Pantalaimon
 
Hi,

die Funktion wird doch im onload-Event aufgerufen, nachdem das Dokument fertig geladen wurde.
Code:
window.onload = function(){
  // ...
}
Ciao
Quaese
 
Hallo,

Danke nochmal für deine Hilfe.
Der Fehler lag natürlich nicht bei dir, sondern auf meiner Seite. Ich hatte einfach 2 Schreibfehler enthalten, die ich nicht gleich gesehen hatte. Es funktioniert jetzt einwandfrei.


Gruß
Pantalaimon
 
Jetzt muss ich doch nochmal nachhaken, denn mir ist nicht ganz verständlich, was in diesem Script-Teil passiert:

if(Start<=a.length)
Start=0;
b.src = a[Start];
window.setTimeout("RotateImages("+whichHolder+","+(Start+1)+")",1500);

Könntest du mir hier Ablauf, bitte etwas genauer schildern?

Danke und Gruß
Pantalaimon
 

Neue Beiträge

Zurück