Carnygel: Kann Bildershow nicht stoppen

Hallo,
habe eine Bildershow zusammengestellt. Auf der Seite gibt es eine Start- und Stopp-Funktion. Mit Start läuft die Show automatisch an. Das haut hin. Aber Stopp klappt nicht. Kann mir vielleicht jemand sagen, wo ich den Fehler gemacht habe? Danke!

Hier der Quellcode:

<body bgcolor="#cfffff" >
<script language="JavaScript1.2">
<!--
function reapply(){
setTimeout("slideit()",2000)
return true
}
window.onerror=reapply

// einbinden der Grafiken
var image1=new Image()
image1.src="bilder/galerie-01/donaubaden-06.jpg"
var image2=new Image()
image2.src="bilder/galerie-01/donaubaden-08.jpg"
var image3=new Image()
image3.src="bilder/galerie-01/donaubaden-09.jpg"
var image4=new Image()
image4.src="bilder/galerie-01/donaubaden-10.jpg"
var image5=new Image()
image5.src="bilder/galerie-01/donaubaden-11.jpg"
var image6=new Image()
image6.src="bilder/galerie-01/donaubaden-13.jpg"
var image7=new Image()
image7.src="bilder/galerie-01/donaubaden-20.jpg"
var image8=new Image()
image8.src="bilder/galerie-01/donaubaden-14.jpg"

// -->
</script>

<script>
<!--
var number_of_images=8 // Anzahl der Grafiken
var speed=4 // Geschwindigkeit des Filterübergang
var step=1 // Schrittanzahl
var image=1 // Start der ersten Grafik
function slideit() {
if (!document.images)
return
if (document.all)
slide.filters.blendTrans.apply()
document.images.slide.src=eval("image"+step+".src")
if (document.all)
slide.filters.blendTrans.play()
whichimage=step
if (step<number_of_images)
step++
else
step=1
if (document.all)
setTimeout("slideit()",speed*1000)
else
setTimeout("slideit()",speed*1000)
}

function exit() {
stop=true;
}
// -->
</script>

<table valign="middle" align="center" class="textnormal" bgcolor="#000099">

<tr><td width="350"><hr size="4"></td></tr>
<tr><td align="center" width="350"bgcolor="#cfffff">
<big><b><font color="#000099">Automatische Bildershow:
<br>&quot;Arbeiten und baden an der Donau&quot;</font></b></big>
</td></tr>
<tr><td width="350"><hr size="4"></td></tr>

<tr><td align="center" width="350">
</td></tr>
<tr><td align="center" valign="top" height="270">
<a href="javascript:slidelink()"
onMouseover="window.status='Jedes Bild hat eine eigene URL';return true"
onMouseout="window.status=''">
<img src="bilder/galerie-01/donaubaden-14.jpg" name="slide" border="0" valign="middle" align="center" style="filter:blendTrans(duration=3)"></a>
</td></tr>
<tr><td>
<form>
<input type=button value="Start" onClick="slideit()"><br>
<input type=button value="Stop" onClick="exit()"><br>
</form>
</td></tr>
</table>

</body>

  1. Hallo Carnygel,

    <[Element] onClick="stop()">Stop</[Element]><[Element] onClick="start()">Start</[Element]>

    für

    var stop='';
    function slideit()
       {
       //  [...]
       if(stop!='stop') setTimeout("slideit()",speed*1000);
       }
    function stop()
       {
       var stop='stop';
       }
    function start()
       {
       var stop='';
       slideit();
       }

    Gruß aus Berlin!
    eddi

    --
    Manchmal trifft es einen doch ganz unverhofft t86591:
    > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
    Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
    1. Danke eddi,
      habe var... am Schluss von <script> eingefügt. Jetzt funktioniert aber auch der Start nicht mehr.
      Gruß Carnygel

      »» <[Element] onClick="stop()">Stop</[Element]><[Element] onClick="start()">Start</[Element]>

      für

      var stop='';
      function slideit()
         {
         //  [...]
         if(stop!='stop') setTimeout("slideit()",speed*1000);
         }
      function stop()
         {
         var stop='stop';
         }
      function start()
         {
         var stop='';
         slideit();
         }

      Gruß aus Berlin!
      eddi

      1. Re:

        habe var... am Schluss von <script> eingefügt. Jetzt funktioniert aber auch der Start nicht mehr.

        Dann sind dort vermutlich noch andere Fehler drin.

        Gruß aus Berlin!
        eddi

        --
        Manchmal trifft es einen doch ganz unverhofft t86591:
        > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
        Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
        1. Habe den Fehler schon gefunden, Danke!

  2. <script language="JavaScript1.2">
    <script>

    Das language-Attribut darfst du weglassen; das type-Attribut nicht. Muss also <script type="text/javascript"> heißen.

    function reapply(){
    setTimeout("slideit()",2000)
    return true
    }

    Musste glatt selber nachschauen, ob es erlaubt ist, das ; nach einer Anwesung wegzulassen. Laut http://de.selfhtml.org/javascript/sprache/regeln.htm#anweisungen ist es das; empfehlen würde ich es aber nicht.

    if (step<number_of_images)
    step++
    else
    step=1

    Das lässt sich mit einer for-Schleife eleganter ausdrücken.

    if (document.all)
    setTimeout("slideit()",speed*1000)
    else
    setTimeout("slideit()",speed*1000)

    Welchen Sinn macht das, wenn im if- und im else-Zweig dasselbe steht?

    function exit() {
    stop=true;
    }

    Und hier zu deinem Problem: Wo wird stop abgefragt?

    Gunnar

    --
    "(Der Student) kann sich so völlig dem hingeben, was er naiv für die Computerwissenschaft hält, also der bloßen Verfeinerung seiner Programmiertechniken, daß er sich auf diese Weise effektiv daran hindert, etwas wirklich Wesentliches zu studieren."
    (Joseph Weizenbaum in "Die Macht der Computer und die Ohnmacht der Vernunft")
    1. hi

      Das language-Attribut darfst du weglassen; das type-Attribut nicht. Muss also <script type="text/javascript"> heißen.

      nicht nur darf, sondern muss. Und außerdem ist 1.2 sicher nicht mehr up-to-date.

      Gruß Kai

      1. Das language-Attribut darfst du weglassen;
        nicht nur darf, sondern muss.

        Kai,
        In der Transitional-Variante ist das language-Attribut erlaubt.
        Gunnar

        --
        "(Der Student) kann sich so völlig dem hingeben, was er naiv für die Computerwissenschaft hält, also der bloßen Verfeinerung seiner Programmiertechniken, daß er sich auf diese Weise effektiv daran hindert, etwas wirklich Wesentliches zu studieren."
        (Joseph Weizenbaum in "Die Macht der Computer und die Ohnmacht der Vernunft")
    2. Das hätte ich ja gern aus diesem Kreis erfahren! Ich habe einen Stopp-Button und möchte, dass dieser den Vorgang slideit stoppen.
      Komme aber nicht dahinter, wo ich welche Ergänzungen vornehmen muss bzw. welche ich zuviel drinnen habe. Bin noch nicht so fit!

      function exit() {
      stop=true;
      }

      Und hier zu deinem Problem: Wo wird stop abgefragt?

      Gunnar

  3. versuch mal anstelle von [<input type=button value="Stop" onClick="exit()">]

    <input type="button" value="Stop" onClick="stop()">