Markus Speicherl: Lösung

Beitrag lesen

So jetzt bin ich auch wieder wach =)

Gast42 hat natürlich recht. tickzeit ist eine konstant gesetzter Wert der nur einmal gelesen wird, folglich muss ich also richtig heissen:

function settick(ticks){
zaehler=ticks;
tickzeit=ticks;
}

Die tickzeit=ticks; setzen wir damit wir es später in der übergabe verwenden können; Denn ja, auch eine übergabe der tickzeit an die neue geladene Seite ist sinnvoll da man sonst nach jedem refresh ja neu auswählen muss wann das nächste mal refresht werden soll.

Deswegen:
location.replace('Untitled-1.html?'+tickzeit);

Dies ist etwas unsauber aber da ich nicht annehme, dass du noch mehr Werte übertragen wirst ist es machbar.

Und letzlich, da ich weiss, dass du eh nur ein copy/paste des Codes vor hast ohne es genauer unter die Lupe zu nehmen:

<script type="text/javascript">
<!--
tickzeit=60;//Anzahl Sekunden
fNull=1;//wenn Sekunden kleiner 10 => führende '0' anzeigen; um diese nicht anzuzeigen, Wert auf 0 setzen
gettick=location.search.substring(1);
zaehler=gettick!=""?parseInt(gettick):tickzeit;

function settick(ticks){
zaehler=ticks;
tickzeit=ticks;
}

function tick(){
n=zaehler<10&&fNull?'0'+zaehler:zaehler;
document.getElementById('ticker').innerHTML=n;
zaehler--;
if(zaehler>=0)setTimeout('tick()',1000);
else location.replace('Untitled-1.html?'+tickzeit);
}

function setform() {
 if(gettick!=""){
   for (i = 0; i < document.Form1.Field1.length; ++i)
  if (document.Form1.Field1.options[i].value == gettick)
    document.Form1.Field1.options[i].selected = true;

}
}
//-->
</script>

<body onload="tick();setform();">

<a href="#" id="ticker">--</a> Sekunden<br />

<form name="Form1" action="">
    <select name="Field1" onchange="settick(this.value);">
      <option value="10">1 Minute</option>
      <option value="20">2 Minuten</option>
      <option value="300">5 Minuten</option>
      <option value="63113852">Alle 2 Jahre</option>
    </select>
</form>

Anmerkung: Vielelicht packt dich ja doch noch der ergeiz dich damit zu beschäftigen da es sicherlich nicht ratsam ist die Refreshzeit in Sekunden anzugeben wenn es länger als 5 Minuten dauert... Aber das ist einfache Geteilt-Rechnung mit einer IF-Abfrage. Das schaffst du hoffentlich.

grüsse