benjamin bechtold: dynamisches Wechseln von img's klappt im Netscape nicht!

Hallo

Der folgende Sourcecode funktioniert für den IE, aber nich für Netscape. Ich hab keine Ahnung warum.
Bitte helft mir!

<html>
<head>
<script language="JavaScript">
<!--
 var bilder = new Array();
 var meldung = "Es wurden die folgenden Bilder geladen:\n";
 var i = 0;
 var laufen=false;

function init()
{
 for (i = 1; i<19;i++)
 {
 var bilderURL = "images/img00" + i + ".jpg";
 status = "Lade Bild " + bilderURL;
 bilder /*[i]*/ = 'asdf'; /*new Image();*/
 /*bilder[i - 1].src = bilderURL;*/
 meldung = meldung + bilderURL + "\n";
 }
alert(status);
status="Alle Bilder geladen";
 setTimeout('status=""',1000);
 alert(meldung);
}
function zeigeBilder()
 {
  if(i > 17) i = 0;
  document.images[1].src = bilder[i].src;
  i = i + 1;
  if (laufen==true) window.setTimeout("zeigeBilder()",50);
 }

function stop()
{

laufen=false;

}
function los()
{
laufen=true;
zeigeBilder();

}
-->
</script>
</head>
<BODY onLoad="javascript: init()">
Drücken Sie auf den Startknopf: <IMG src="redbul.gif" name="Startknopf" height=20 onMouseDown="javascript: los()" width="20">
<p  align="center">
<img src="images/img001.jpg">
<p>
Drücken Sie  auf den Stopknopf:
<IMG src="redbul.gif" name="Stopknopf" height=20 onmousedown="javascript: stop()">
</body>
</html>

  1. n Abend

    Der folgende Sourcecode funktioniert für den IE, aber nich für Netscape. Ich hab keine Ahnung warum.

    Hmm ... auf den ersten Blick scheint das script O.K. zu sein.
    Als Probe auf's Exempel habe ich sämtliche Zeilenumbrüche gelöscht (also das gesamte script in einer Zeile) und bei Angaben wie "javascript: init()" das Leerzeichen nach dem Doppelpunkt rausgenommen.
    Und siehe da - auch Herr Netscape spuckte brav, ohne zu meckern und ohne Fehlermeldung die beiden Dialogboxen aus.

    Thomas J.

  2. hi,

    bilder /*[i]*/ = 'asdf'; /*new Image();*/
    /*bilder[i - 1].src = bilderURL;*/

    warum kommentierst Du die Vorladefunktion aus?
    besser so:

    bilder[i] = new Image();
     bilder[i].src = bilderURL;

    function zeigeBilder()
    {
      if(i > 17) i = 0;

    vorgeladen hast Du ab 1, hier setzt Du i auf 0 - bilder[0] gibts aber nicht. Versuch mal 1 - oder zaehle gleich generell ab 0.

    document.images[1].src = bilder[i].src;

    Tipp: referenziere ueber den Namen, sonst endest Du im Chaos.

    hth

    Gruesse  Joachim