Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
javascript in html einbinden
#1
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
Zitieren
#2
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.
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)
Zitieren
#3
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.
Zitieren
#4
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
Zitieren
#5
Danke für die Antworten.
Ich habe jetzt den Firefox Browser bereinigt und es funktioniert jetzt.
Danke
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
2 Gast/Gäste