Javascript-Funktion abbrechen
Gregor
- javascript
Hi,
wie kann man mit einfachen Mitteln eine im Body-Tag aufgerufene Javascript-Funktion wieder abbrechen.
Bei der Javascript-Funktion handelt es sich um eine Slideshow. Der Abbruch soll über einen Button erfolgen.
Danke
Gregor
Hallo Gregor
Das kommt sehr darauf an, was Du damit genau meinst.
In der Funktion selbst kannst Du die Funktion mir return verlassen. Falls Du das abbrechen von außen herbeiführen willst, musst Du das der Funktion z.b. duch setzen einer Variable mitteilen.
Falls Du, was bei einer Slideshow durchaus warscheinlich ist, mit setIntervall() eine Funktion regelmäßig aufrufst, kannst Du das mit clearIntervall() abbrechen.
Falls Dir das nicht weiterhilft, musst Du mal genauer formulieren, was Du meinst.
Grüße
Daniel
Hallo Gregor
Das kommt sehr darauf an, was Du damit genau meinst.
In der Funktion selbst kannst Du die Funktion mir return verlassen. Falls Du das abbrechen von außen herbeiführen willst, musst Du das der Funktion z.b. duch setzen einer Variable mitteilen.
Falls Du, was bei einer Slideshow durchaus warscheinlich ist, mit setIntervall() eine Funktion regelmäßig aufrufst, kannst Du das mit clearIntervall() abbrechen.
Falls Dir das nicht weiterhilft, musst Du mal genauer formulieren, was Du meinst.
Grüße
Daniel
Hi Daniel,
ich möchte die Funktion extern abbrechen.
Beispiel für den Aufruf:
javascript:slideshow()
Und nun soll ein Abbruch ausgeführt werden:
javascript:stopshow()
Was muss in der Funktion stopshow stehen?
Mit
function stopshow(){
break slideshow
}
gibts eine Fehlermeldung und weiter reichen meine Kenntnisse noch nicht. Leider finde ich auch nur Infos zum Aufrufen einer Funktion oder halt den Abbruch deren innerhalb.
Grüße
Gregor
Hi Gregor,
"break slideshow" ist Schwachsinn. Du mußt ein sog. "Flag" (Schalter) benutzen, was nichts anderes ist als eine Boolsche Variable... Beispielsweise so:
init_slideShow();
function slideShow()
{
while (show)
{
// hier kommt der Code zum Bild anzeigen
}
else return;
}
function init_slideShow()
{
show = true;
// hier folgen weitere Initialisierungen
}
function stop_slideShow()
{
show = false;
}
Gruß,
(: Danny :)
Hi Gregor,
"break slideshow" ist Schwachsinn. Du mußt ein sog. "Flag" (Schalter) benutzen, was nichts anderes ist als eine Boolsche Variable... Beispielsweise so:
init_slideShow();
function slideShow()
{
while (show)
{
// hier kommt der Code zum Bild anzeigen
}
else return;
}
function init_slideShow()
{
show = true;
// hier folgen weitere Initialisierungen
}
function stop_slideShow()
{
show = false;
}
Gruß,
(: Danny :)
Hi Danny,
da ich noch Anfänger mit Javascript bin hatte ich leider mit dem einfügen des Codes in deine Variable keinen Erfolg. Es kam immer zu einem Syntaxerror was sicherlich auf meine Unwissenheit zurück zuführen ist.
Hier der Code der Funktion, vielleicht läßt sich da irgendwo ein Stop-Flag setzen.
<script language="JavaScript">
var j,l="",m="",p="",q="",z="",list= new Array()
list[list.length]='bild01.jpg';
list[list.length]='bild02.jpg';
list[list.length]='bild03.jpg';
list[list.length]='bild04.jpg';
list[list.length]='bild05.jpg';
j=parseInt(Math.random()*list.length);
j=(isNaN(j))?0:j;
document.write("<img name='SlideShow' src='"+list[j]+"'>");
function SlideShow(t,l) {
x=document.SlideShow;
j=l;
j++;
if (j==list.length) j=0;
x.src=list[j];
setTimeout("SlideShow("+t+","+j+")",t);
}
</script>
Besten Dank für die Hilfestellung.
Gregor
<script language="JavaScript">
<!--
var j,l="",m="",p="",q="",z="";
var list=new Array();
list[list.length]='bild01.jpg';
list[list.length]='bild02.jpg';
list[list.length]='bild03.jpg';
list[list.length]='bild04.jpg';
list[list.length]='bild05.jpg';
j=parseInt(Math.random() * list.length);
j=(isNaN(j)) ? 0 : j;
document.write("<img name='SlideShow' src='"+list[j]+"'>");
function SlideShow(t,l)
{
if (show)
{
x=document.SlideShow;
j=l;
j++;
if (j==list.length) j=0;
x.src=list[j];
setTimeout("SlideShow("+t+","+j+")",t);
}
}
//-->
</script>
Den Rest mußt Du schon selbst anpassen... ;-)
<script language="JavaScript">
<!--
var j,l="",m="",p="",q="",z="";
var list=new Array();
list[list.length]='bild01.jpg';
list[list.length]='bild02.jpg';
list[list.length]='bild03.jpg';
list[list.length]='bild04.jpg';
list[list.length]='bild05.jpg';
j=parseInt(Math.random() * list.length);
j=(isNaN(j)) ? 0 : j;
document.write("<img name='SlideShow' src='"+list[j]+"'>");
function SlideShow(t,l)
{
if (show)
{
x=document.SlideShow;
j=l;
j++;
if (j==list.length) j=0;
x.src=list[j];
setTimeout("SlideShow("+t+","+j+")",t);
}
}
//-->
</script>
Den Rest mußt Du schon selbst anpassen... ;-)
Hi Danny,
vielen Dank für die Hilfe. Ich hoffe das ich mit Copy/Paste klar komme. Falls nicht melde ich wieder.
Grüße
Gregor
Hallo Danny,
das war wohl etwas knapp als Hinweis. Wichtig ist doch, dass die Variable show global deklariert wird, d.h. sie kann in allen Funktionen verwendet werden. Parameterübergabe sollte man sich ersparen. Also:
<script language="JavaScript">
<!--
var show, BildNr
var t= ... Darstellungszeit der Bilder
function StartSlideShow() {
show="true"
BildNr=... (Auswahl des ersten Bildes)
SlideShow()
}
function SlideShow()
{
if (show) {
... Das Bild mit Nummer BildNr darstellen
BildNr= ... (nächster Wert)
setTimeout("SlideShow()",t)
}
}
function StopSlideShow()
{
show="false"
}
//-->
</script>
Gruß
Hans35
Moin!
ich möchte die Funktion extern abbrechen.
Beispiel für den Aufruf:
javascript:slideshow()
Und nun soll ein Abbruch ausgeführt werden:
javascript:stopshow()
Was muss in der Funktion stopshow stehen?
Das hängt davon ab, was die Funktion slideshow() macht.
function stopshow(){
break slideshow
}
Sowas gibts nicht.
Hinweis zum Selber-Rausfinden: Du mußt in der Funktion slideshow() einen Mechanismus einbauen, der die Funktion anhält, sofern gewisse Bedingungen eintreten, also z.B. wenn eine Variable entsprechend gesetzt ist.
- Sven Rautenberg