javascript in html einbinden - haiflosse - 01.01.2024
Hallo!
Ich verwende folgenden javascript code in einer externen Datei:
Code: // Ziel-Datum in MEZ
var jahr=2024, monat=6, tag=03, stunde=08, minute=00, sekunde=00;
var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);
function countdown() {
startDatum=new Date(); // Aktuelles Datum
// Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
if(startDatum<zielDatum) {
var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;
// Jahre
while(startDatum<zielDatum) {
jahre++;
startDatum.setFullYear(startDatum.getFullYear()+1);
}
startDatum.setFullYear(startDatum.getFullYear()-1);
jahre--;
// Monate
while(startDatum<zielDatum) {
monate++;
startDatum.setMonth(startDatum.getMonth()+1);
}
startDatum.setMonth(startDatum.getMonth()-1);
monate--;
// Tage
while(startDatum.getTime()+(24*60*60*1000)<zielDatum) {
tage++;
startDatum.setTime(startDatum.getTime()+(24*60*60*1000));
}
// Stunden
stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);
// Minuten
minuten=Math.floor((zielDatum-startDatum)/(60*1000));
startDatum.setTime(startDatum.getTime()+minuten*60*1000);
// Sekunden
sekunden=Math.floor((zielDatum-startDatum)/1000);
// Anzeige formatieren
//(jahre!=1)?jahre=jahre+" y, ":jahre=jahre+" y, ";
(monate!=1)?monate=monate+" Monate, ":monate=monate+" Monate, ";
(tage!=1)?tage=tage+" Tage, ":tage=tage+" Tage, ";
(stunden!=1)?stunden=stunden+" Std., ":stunden=stunden+" Std., ";
(minuten!=1)?minuten=minuten+" Min., ":minuten=minuten+" Min., ";
if(sekunden<10) sekunden="0"+sekunden;
(sekunden!=1)?sekunden=sekunden+" Sek.":sekunden=sekunden+" Sek.";
//document.getElementById("zeit").innerHTML =jahre+monate+tage+stunden+minuten+sekunden;
document.getElementById("zeit").innerHTML ="noch: "+monate+tage+stunden+minuten+sekunden;
setTimeout('countdown()',200);
}
// Anderenfalls alles auf Null setzen
else document.getElementById("zeit").innerHTML=
"0 Monate, 0 Tage, 0 Std., 0 Min., 00 Sek.";
}
in der html Datei binde ich den Code wie folgt ein und rufe die Funktion countdown() beim Laden der html Datei auf.
Code: <!DOCTYPE html>
<html>
<head>
<script src="zeit.js"></script>
</head>
<body onLoad="countdown(); ">
<div id="zeit"></div>
</body>
</html>
In jedem Browser außer beim Firefox funktioniert dies.
Beim Browser Firefox muss ich den Code von zeit.js direkt in dei html Datei einbinden, dann funktioneirt es auch.
Daher wollte ich fragen, was ich ändern muss, damit es auch im Browser Firefox funktioniert.
Danke
RE: javascript in html einbinden - Sempervivum - 01.01.2024
Hallo, leider kann ich das Problem nicht reproduzieren: Auch im Firefox läuft der Countdown einwandfrei. "Über Firefox" sagt "Ihr Browser ist aktuell".
Mein Editor, Visual Studio Code, beanstandet jedoch die führenden Nullen bei den Werten für das Datum:
Zitat: Octal literals are not allowed. Use the syntax '0o3'.
Lösche mal diese führenden Nullen und beobachte, ob es dann funktioniert.
RE: javascript in html einbinden - haiflosse - 01.01.2024
Danke für die Antwort.
Der Firefox Browser ist aktuell.
Ist gedacht die Zeile zu Beginn entsprechend zu ändern z.b. in:
Code: var jahr=2024, monat=6, tag=3, stunde=8, minute=0, sekunde=0;
Dies hat leider keine Änderung gebracht.
RE: javascript in html einbinden - Poolgate - 01.01.2024
Hi,
Ich glaube du hast hier ein hoisting Problem. Warum arbeitest du nicht mit let oder const die Gültigkeitsbereiche fest sind. Ich kann mich irren, aber dann hast du auf jeden Fall einen sauberen Code
RE: javascript in html einbinden - haiflosse - 01.01.2024
Danke für die Antworten.
Ich habe jetzt den Firefox Browser bereinigt und es funktioniert jetzt.
Danke
|