Mark: Countdown mit Serverzeit geht nicht in Firefox

Hallo zusammen,

habe folgendes php-file mit ner Kombination aus php und javascript um mir einen Countdown anzuzeigen der bis zu ner gewissen Urhzeit zurückläuft.

Das Ding tut auch im IE genau so wie es soll, es zählt die Zeit runter, aber leider nicht im Firefox. Im FF ist die Anzeige statisch.
Kann mir jemand sagen wieso bzw. noch besser, mir sagen wie ich das Ding auch im Firefox zum laufen bekomme? Vielen Dank!

<?
$spd = explode(".","19.12.2005");
$spt = explode(":","17:00:00");
$st = mktime($spt[0],$spt[1],0,$spd[1],$spd[0],$spd[2]);
$now = mktime();
$rest = $st-$now;
$d = floor($rest/86400);
$std = floor(($rest-($d*86400))/3600);
$min = floor(($rest-(($d*86400)+($std*3600)))/60);
$sec = floor(($rest-(($d*86400)+($std*3600)+($min*60))));
echo "<script language="JavaScript">\n";
echo "<!--//Zeit Bis zum Start\n";
echo "var SEC = ".$sec.";\n";
echo "var MIN = ".$min.";\n";
echo "var STD = ".$std.";\n";
echo "var DAYS = ".$d.";\n";
echo "si = setInterval("startCountdown()",1000)\n";
echo "function startCountdown(){ \n";
echo "if(MIN >= 10 && (SEC - 1) >= 10) { \n";
echo "SEC = SEC - 1; \n";
echo "numberCountdown.innerText = DAYS +" Days " + STD + " hours " + MIN + " Min " + SEC + " Sec ";\n";
echo "} else if(MIN >= 10 && (SEC - 1) < 10 && (SEC - 1) >= 0) {\n";
echo "SEC = SEC - 1; \n";
echo "numberCountdown.innerText = DAYS +" Days " + STD + " hours " + MIN + " Min " + SEC + " Sec ";\n";
echo "} else if( MIN < 10 && MIN >= 0 && (SEC - 1) < 10 && (SEC - 1) >= 0) {\n";
echo "SEC = SEC - 1; \n";
echo "numberCountdown.innerText = DAYS +" Days " + STD + " hours " + MIN + " Min " + SEC + " Sec ";\n";
echo "} else if(MIN < 10 && MIN >= 0 && (SEC - 1) >= 10) {\n";
echo "SEC = SEC - 1;\n";
echo "numberCountdown.innerText = DAYS +" Days " + STD + " hours " + MIN + " Min " + SEC + " Sec ";\n";
echo "} else if((MIN - 1) >= 10 && SEC == 0) {\n";
echo "SEC = 59; MIN = MIN - 1; \n";
echo "numberCountdown.innerText = DAYS +" Days " + STD + " hours " + MIN + " Min " + SEC + " Sec ";\n";
echo "} else if((MIN - 1) < 10 && (MIN - 1) >= 0 && SEC == 0) {\n";
echo "SEC = 59; MIN = MIN - 1;";
echo "numberCountdown.innerText = DAYS +" Days " + STD + " hours " + MIN + " Min " + SEC + " Sec ";\n";
echo "} else if(MIN == 0 && SEC == 0) { \n";
echo "STD = STD - 1; MIN = 59; SEC = 59; \n";
echo "numberCountdown.innerText = DAYS +" Days " + STD + " hours " + MIN + " Min " + SEC + " Sec ";\n";
echo "}\n";
echo "if (DAYS<0) {\n";

echo "numberCountdown.innerText = "Zeit ist um" ;\n";
echo "}\n";
echo "if(STD==0 && MIN==0 && SEC==0 && DAYS==0) {\n";
echo "document.getElementById('act').value = 'Tippabgabe nicht mehr Möglich!';\n";
echo "document.getElementById('act').style.width = '400';\n";
echo "document.getElementById('act').style.backgroundColor = 'DDDDDD';\n";
echo "document.getElementById('act').style.color = 'FF0000';\n";
echo "document.getElementById('act').style.borderStyle = 'dashed';\n";
echo "document.getElementById('act').style.visibility = 'hidden';\n";
echo "document.getElementById('act').style.display = 'none';\n";
echo "window.clearInterval(si);\n";
echo "document.tipp.act.addEventListener("click", noSubmit())\n";
echo "}\n";
echo "}\n";
echo "//-->\n";
echo "</script>\n";
echo "<b>".$race."</b><br>";
echo "<div id="numberCountdown" style="color:#FF0000">".$d." Days ".$std." hours ".$min." Min ".$sec." sec</div>";

?>

  1. hi,

    habe folgendes php-file mit ner Kombination aus php und javascript um mir einen Countdown anzuzeigen der bis zu ner gewissen Urhzeit zurückläuft.

    Da du hier ein clientseitige Problem diskutieren willst, poste bitte zukünftig in solchen Fällen _immer_ das, was beim Client ankommt - PHP interessiert in diesem Fall weder den Client noch uns. Was bei diesem Script nachher herauskommt, ist so schwerer zu erfassen.

    Das Ding tut auch im IE genau so wie es soll, es zählt die Zeit runter, aber leider nicht im Firefox. Im FF ist die Anzeige statisch.
    Kann mir jemand sagen wieso

    Weil der FF innerText nicht kennt.

    bzw. noch besser, mir sagen wie ich das Ding auch im Firefox zum laufen bekomme?

    In dem du die Manipulation des Elementinhaltes durch ein kompatiblere Form ersetzt.
    Z.B. durch Zugriff auf die .data-Eigenschaft eines Text(!)knotens, oder durch das dem innerText in diesem Falle stark verwandte .innerHTML, welches auch aktuelle FF unterstützen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Da du hier ein clientseitige Problem diskutieren willst, poste bitte zukünftig in solchen Fällen immer das, was beim Client ankommt - PHP interessiert in diesem Fall weder den Client noch uns. Was bei diesem Script nachher herauskommt, ist so schwerer zu erfassen.

      okay, sorry....

      Weil der FF innerText nicht kennt.

      jup, hatte ich dann dank selfhtml auch schon rausgefunden

      oder durch das dem innerText in diesem Falle stark verwandte .innerHTML, welches auch aktuelle FF unterstützen.

      genau das brauchte ich, funzt schon, vielen Dank

      Mark

  2. Also warum es im FF nicht geht ist mir schon klar, sind proprietäre Formate die FF nicht versteht, aber wie kriege ich das als cross-browser-fähiges Script hin?

    1. Hallo!

      Also warum es im FF nicht geht ist mir schon klar, sind proprietäre Formate die FF nicht versteht, aber wie kriege ich das als cross-browser-fähiges Script hin?

      schonma was von Browser Hacks gehört? ;)

      Mit freundlichen Grüßen,
      Adrian