URL-Array + iframe
questionsmark
- javascript
0 Siechfred
Hallo Forum,
komme beim folgenden Script leider nicht weiter:
##########################################################################
<html>
<head>
<title>Reload + URL Array Test</title>
<script language="Javascript">
<!--
var countdown = 20;
function doCount()
{
if (countdown > 0){
countdown--
}
else{
var mein_array = new Array("http://www.google.de","http://www.lycos.de");
deinFrame.href = mein_array[i];
i++;
}
var s = countdown;
var h = Math.floor(s/3600);
var m = Math.floor((s - (h * 3600))/60);
s = (s-(h*3600))%60
window.document.title=h+":"+m+":"+s+ " bis zum nächsten Reload"
window.setTimeout('doCount()',1000)
}
doCount();
//-->
</script>
</head>
<body>
<b>Reload + URL Array Script</b><p>
<iframe name="deinFrame" width="99%" height="99%"></iframe>
</body>
</html>
##########################################################################
Das Script soll folgendermassen funktionieren:
Es soll nach der vorgegebenen Zeit von 20 sec ("var countdown = 20;") reloaden, und dann die nächste URL aus dem Array laden. Tut es aber leider nicht :P.
Die Countdown läuft zwar (im title) runter, aber bei "0" tut sich leider nix mehr.
Pls help :-)
Tag questionsmark.
komme beim folgenden Script leider nicht weiter:
[...]
deinFrame.href = mein_array[i];
Wo ist die Variable i definiert?
[dsf 3.6]
Siechfred
Variable?
ich dachte das i hat was mit dem Zähler (i++) zu tun.
Mit Arrays kenn ich mich soweit überhaupt nicht aus. Habe das Script bzw. mein Prob schonmal hier geschildert. Hatte auch nen paar hilfen bekommen. Leider brachten Sie mich nich ganz zum erfolg.
Den kompletten thread hier:
http://forum.de.selfhtml.org/archiv/2004/12/t96397/
Danke
Tag questionsmark.
Variable?
ich dachte das i hat was mit dem Zähler (i++) zu tun.
Ja, i ist deine Zählervariable, die du allerdings erstmal definieren musst. Schreibe also an den Anfang des Scriptes (vor die Funktionsdefinitionen) noch ein "var i = 0;", dann sollte es eigentlich funktionieren.
[dsf 3.6]
Siechfred
Schreibe also an den Anfang des Scriptes (vor die Funktionsdefinitionen) noch ein "var i = 0;", dann sollte es eigentlich funktionieren.
klappt leider auch net ;(
is nun mittlerweile die vierte variante von scripts. Hier mal die links zu diesen:
http://opelmanni.piranho.com/Test/reload_js.html (einfaches ReloadScript ohne array etc...)
http://opelmanni.piranho.com/Test/Reload_Linkarray_Test.html
http://opelmanni.piranho.com/Test/Reload_Linkarray_Test_2.html
http://opelmanni.piranho.com/Test/test.html (hier habe ich am Anfang die variable i=0 gesetzt. Leider passiert nix, wenn der counter auf "0" is.
vll. hat es damit was zu tun, das ich in der function unter else{} die syntax "location.reload" durch das Array erstzt hab... das wurd mir ja im thread zuvor erklärt... leider kamm kein post zurück.
Tag questionsmark.
Schreibe also an den Anfang des Scriptes (vor die Funktionsdefinitionen) noch ein "var i = 0;", dann sollte es eigentlich funktionieren.
klappt leider auch net ;(
Kann auch nicht, da sind noch mehr Fehler drin.
http://opelmanni.piranho.com/Test/test.html (hier habe ich am Anfang die variable i=0 gesetzt. Leider passiert nix, wenn der counter auf "0" is.
Es fehlt das type-Attribut im öffnenden script-Tag. Im Ursprungsthread wurde dir schon gesagt, dass du location.href verwenden sollst, nicht einfach nur href. Weiterhin musst du nach jedem Reload die Countdown-Variable wieder hochsetzen. Und nicht zuletzt solltest du prüfen, dass dein Array auch das gewünschte Element enthält. Ich habe das mal etwas vereinfacht:
<script type="text/javascript" language="Javascript">
<!--
var countdown = 10;
var i = 0;
var mein_array = new Array("http://www.google.de","http://www.lycos.de");
function doCount()
{
if (countdown > 0) {
countdown--;
}
else if (i = mein_array.length) {
// Zähler zurücksetzen, wenn das letzte Arrayelement erreicht ist
// Beachte: length liefert die Anzahl (im vorliegenden Fall 2),
// der Zähler beginnt aber bei 0.
i = 0;
}
else {
deinFrame.location.href = mein_array[i];
i++;
countdown=10;
}
var s = countdown;
var h = Math.floor(s/3600);
var m = Math.floor((s - (h * 3600))/60);
s = (s-(h*3600))%60
window.document.title=h+":"+m+":"+s+ " bis zum nächsten Reload"
window.setTimeout('doCount()',1000)
}
//-->
</script>
Das ganze aufgerufen via <body onload="doCount()"> funktioniert genauso, wie es soll.
[dsf 3.6]
Siechfred