[Javascript] Countdown läuft nach Aufruf aus Child Fenster doppelt so schnell

hurga_gonzales

Captain
Registriert
Aug. 2004
Beiträge
3.271
Hi,


ich habe mir vor einiger Zeit ein Countdown Script in Javascript geschrieben. Das funktioniert super, wenn ich es aus einem Frame meiner Internet-Anwendung heraus aufrufe (bzw. von der Webseite aus). Rufe ich das Script allerdings aus einem Fenster auf, das ich gerade geöffnet habe, dann läuft der Countdown plötzlich doppelt so schnell.

Der Aufruf ist ganz einfach mittels

Code:
setTimeout("opener.top.center.Down('45:00')", 300000);

Weiß jemand, warum das so ist?

Danke
Hurga
 
vielleicht würde es noch was bringen, wenn du das script für den countdown mitangibst...
 
Hi Muuuhmann,

klar, vielleicht....here we go :-)

Code:
var up, down;
var min1, sec1;
var cmin1, csec1, cmin2, csec2;
function Minutes(data) {
      for(var i = 0;i < data.length; i++) if(data.substring(i, i + 1) == ":") break;
      return(data.substring(0, i)); 
}
function Seconds(data) {
      for(var i = 0;i < data.length; i++) if(data.substring(i, i + 1) == ":") break;
      return(data.substring(i + 1, data.length)); 
}
function Display(ctmin, ctsec) {
      var disp;
      if(ctmin <= 9) disp = " 0";
      else disp = " ";
      disp += ctmin + ":";
      if(ctsec <= 9) disp += "0" + ctsec;
      else disp += ctsec;
      return(disp); 
}
function Up() {
      cmin1 = 0;
      csec1 = 0;
      min1 = 0 + Minutes(top.document.counter.beg1.value);
      sec1 = 0 + Seconds(top.document.counter.beg1.value);
      UpRepeat(); 
}
function UpRepeat() {
      csec1++;
      if(csec1 == 60) { 
	csec1 = 0; cmin1++; 
	}
      top.document.counter.disp1.value = Display(cmin1, csec1);
      if((cmin1 == min1) && (csec1 == sec1)) alert("Zeitziel erreicht!");
      else up = setTimeout("UpRepeat()", 1000); 
}
function Down(zeit) { 
   cmin2 = 1 * Minutes(zeit);
      csec2 = 0 + Seconds(zeit);
      DownRepeat();
}
function DownRepeat() {
      csec2--;
      if(csec2 == -1) { 
	csec2 = 59; cmin2--; 
	}
      top.oben.document.ctform.ct.value = Display(cmin2, csec2);
      if((cmin2 == 0) && (csec2 == 0)) top.location.href = 'index.cfm?logout=true';
      else down = setTimeout("DownRepeat()",1000);
}
 
Ich versteh noch nicht ganz, wann dieser Fehler auftritt.
Ich könnte mir denken, dass du außer dem neugeöffneten Fenster och ein weiteres Fenster mit dieser Seite (und dem Javascript) geöffnet hasst und dass beide Seiten auf die gleiche Variable zugreifen. Sowas ähnliches hatt ich mal.
 
Zurück
Oben