Simon P.: Einbinden usw. (starkes verständnisproblem)

Hallo liebe Leute.
Ich denke die Frage wurde schon sehr oft beantwortet und geht euch evtl. sogar auf die nerven, aber ich weiß echt nicht mehr weiter.
Ich wollte ein Änderungsdatum über ein Javascript auf allen meinen HTML-Seiten einfügen. Da das Script recht lang ist, wollte ich es in eine externe Datei schreiben und irgendwie auf jede meiner HTML-Seiten einfügen. Leider habe ich es nicht geschafft... ich habe auf selfhtml und in anderen Foren nachgelesen, wie ich ein Script einfüge. Aber dennoch schaff ich es einfach nicht.

Script Quelltext:
/////////////////////////////////////////////////////////////////
<script type="text/javascript">
var Wochentage = new Array("Sonntag","Montag","Dienstag","Mittwoch", "Donnerstag", "Freitag", "Samstag");
  var Monate = new Array("Januar", "Februar", "März","April", "Mai", "Juni", "Juli","August","September","Oktober", "November", "Dezember");
  var Updated = new Date(document.lastModified);
  var Wochentag = Wochentage[Updated.getDay()];
  var Monat = Monate[Updated.getMonth()];
  var Tag = Updated.getDate();
  var Jahr = Updated.getFullYear();
  var Stunde = Updated.getHours();
  var Minute = Updated.getMinutes();
if (Tag < 10) Tag = "0" + Tag;
if (Minute < 10) Minute = "0" + Minute;
var UpdateText="<b>Letzte Aktualisierung:</b> " + "<br>" +
Wochentag + ", " + Tag + ". " + Monat + " " + Jahr +
" um " + Stunde + ":" + Minute ;
document.write(UpdateText);
</script>
////////////////////////////////////////////////////////////////

und ich wollte einfach, dass dann "document.write(UpdateText)" (soweit ich den Ablauf des Scriptes richtig verstanden habe) hier eingefügt wird:

<p id="Datum">
    <script></script>
</p>

Egal wie ich es gemacht habe (direkt darein) oder wie auch immer, es hat mir am Rechner nichts ausgespuckt. Ich glaube, ich habe bei mir einfach einen großen Logikfehler, deshalb bitte ich euch eine Erklärung für blutige Anfänger zu schreiben.
Vielen Dank schonmal im Voraus.

MfG Simon P.

  1. Hallo liebe Leute.
    Ich denke die Frage wurde schon sehr oft beantwortet und geht euch evtl. sogar auf die nerven, aber ich weiß echt nicht mehr weiter.
    Ich wollte ein Änderungsdatum über ein Javascript auf allen meinen HTML-Seiten einfügen. Da das Script recht lang ist, wollte ich es in eine externe Datei schreiben und irgendwie auf jede meiner HTML-Seiten einfügen.

    http://wiki.selfhtml.org/wiki/JavaScript/Einführung#JavaScript-Dateien_in_HTML_referenzieren
    erklärt, wie man eine externe JS-Datei einbindet.

    Wenn Du ein externes Script im Head einer HTML_Datei einbindest, musst du es dann auch nach dem Laden der Seite wieder aufrufen, z.B mit window.onload:
    http://molily.de/js/event-handling-grundlagen.html#traditionelles-event-handling

    Im Link steht auch wie man einen Textabsatz mit einer id anspricht.

    function klickverarbeitung () {  
       document.getElementById("interaktiv").innerHTML += " Huhu, das ist von Javascript eingefügter Text.";  
    }
    

    Das könntest du zu

      
       document.getElementById("Datum").innerHTML = UpdateText;  
    
    

    Leider habe ich es nicht geschafft... ich habe auf selfhtml und in anderen Foren nachgelesen, wie ich ein Script einfüge. Aber dennoch schaff ich es einfach nicht.

    Script Quelltext:
    /////////////////////////////////////////////////////////////////
    <script type="text/javascript">
    var Wochentage = new Array("Sonntag","Montag","Dienstag","Mittwoch", "Donnerstag", "Freitag", "Samstag");
      var Monate = new Array("Januar", "Februar", "März","April", "Mai", "Juni", "Juli","August","September","Oktober", "November", "Dezember");
      var Updated = new Date(document.lastModified);
      var Wochentag = Wochentage[Updated.getDay()];
      var Monat = Monate[Updated.getMonth()];
      var Tag = Updated.getDate();
      var Jahr = Updated.getFullYear();
      var Stunde = Updated.getHours();
      var Minute = Updated.getMinutes();
    if (Tag < 10) Tag = "0" + Tag;
    if (Minute < 10) Minute = "0" + Minute;
    var UpdateText="<b>Letzte Aktualisierung:</b> " + "<br>" +
    Wochentag + ", " + Tag + ". " + Monat + " " + Jahr +
    " um " + Stunde + ":" + Minute ;
    document.write(UpdateText);
    </script>
    ////////////////////////////////////////////////////////////////

    und ich wollte einfach, dass dann "document.write(UpdateText)" (soweit ich den Ablauf des Scriptes richtig verstanden habe) hier eingefügt wird:

    <p id="Datum">
        <script></script>
    </p>

    Egal wie ich es gemacht habe (direkt darein) oder wie auch immer, es hat mir am Rechner nichts ausgespuckt. Ich glaube, ich habe bei mir einfach einen großen Logikfehler, deshalb bitte ich euch eine Erklärung für blutige Anfänger zu schreiben.
    Vielen Dank schonmal im Voraus.

    MfG Simon P.

    1. Es hat sich alles geklärt, irgendwie hatte ich anscheinend einen Fehler im Javascript verursacht. Habs einfach so gemacht:

      Javascriptdatei:
      nur den Quelltext einfügt ohne: <script></script>

      und in die HTML:

      <p id="Datum">
         <script type="text/javascript" src="letztesDatum.js"></script>
      </P>

      Mich würde es noch interessieren, ob ich das hier:

      <script type="text/javascript" src="letztesDatum.js"></script>

      auch einfach in den Head reinkloppen könnte und irgendwie die Variable "UpdateText" dann hier einfügen könnte:

      <p id="Datum">
          document.write(UpdateText);
      </p>

      Wie kann ich dem Browser sozusagen sagen: Hier lad das schonmal und dann füg das Ergebnis des Scriptes einfach an DER Stelle ein. Dass ich den Quelltext im Bodybereich so gering halte wie es nur geht. Also so irgendwie:

      head
      <script type="text/javascript" src="letztesDatum.js"></script>
      head
      body
      <p id="Datum">
      document.write(UpdateText);
      </p>

      Geht das Überhaupt?
      Vielen Dank

      1. Hallo,

        bitte poste nicht dreimal dasselbe Posting als Antwort!

        head
        <script type="text/javascript" src="letztesDatum.js"></script>
        head
        body
        <p id="Datum">
        document.write(UpdateText);
        </p>

        Geht das Überhaupt?

        Ja, wenn du ein script-Element verwendest schon. Sonst weiß der Browser nicht, dass das auszuführender JavaScript-Code ist.

        Allgemein solltest du dich von document.write lossagen und das Dokument über das DOM ändern, darauf hat Matthias Scharwies schon hingewiesen. Das vereinfacht letztlich vieles. Es kommt dann nicht mehr (notwendig) auf die Ladereihenfolge an und das Script muss nicht dort eingebundenen werden, wo es Ausgaben macht.

        Siehe auch http://molily.de/js/einbindung.html.

        Mathias

        1. Danke an alle die mir geholfen haben!

  2. Hallo liebe Leute.
    Ich denke die Frage wurde schon sehr oft beantwortet und geht euch evtl. sogar auf die nerven, aber ich weiß echt nicht mehr weiter.
    Ich wollte ein Änderungsdatum über ein Javascript auf allen meinen HTML-Seiten einfügen. Da das Script recht lang ist, wollte ich es in eine externe Datei schreiben und irgendwie auf jede meiner HTML-Seiten einfügen.

    http://wiki.selfhtml.org/wiki/JavaScript/Einführung#JavaScript-Dateien_in_HTML_referenzieren
    erklärt, wie man eine externe JS-Datei einbindet.

    Wenn Du ein externes Script im Head einer HTML_Datei einbindest, musst du es dann auch nach dem Laden der Seite wieder aufrufen, z.B mit window.onload:
    http://molily.de/js/event-handling-grundlagen.html#traditionelles-event-handling

    Egal wie ich es gemacht habe (direkt darein) oder wie auch immer, es hat mir am Rechner nichts >ausgespuckt.

    Dein p id="Datum" hat nichts mit dem document.write zu tun. Im Link steht auch wie man einen Textabsatz mit einer id anspricht.

    function klickverarbeitung () {  
       document.getElementById("interaktiv").innerHTML += " Huhu, das ist ...eingefügter Text.";  
    }
    

    Das könntest du zu

      
       document.getElementById("Datum").innerHTML = UpdateText;  
    
    

    umbauen.

    Ich glaube, ich habe bei mir einfach einen großen Logikfehler, deshalb bitte ich
    euch eine Erklärung für blutige Anfänger zu schreiben.

    Das ist nicht mehr ganz der neueste Stand des Debuggens, aber Du kannst mit

      
    alert (UpdateText);        //lässt blöde Popups erscheinen, die Du wegklicken musst.  
    console.log (UpdateText);  // modernere Variante  
    
    

    deine Variablen überprüfen, ob sie einen (oder den gewünschten) Wert haben.

    http://www.weblizards.de/blog/2012/01/javascript-debuggen-mit-console-log-verfeinert/
    http://www.webmasterpro.de/coding/article/werkzeuge-firebug-sinnvoll-verwenden.html

    LG Matthias

  3. Hallo Simon P.,

    schau auch bei youTube nach. Dort gibt es viele kleine Anleitungen in deutsch, wie Javascript in eine html-Datei eingebunden werden kann.

    Viel Erfolg bei den kleinen Schritten
    gruesse qx

    1. Es hat sich alles geklärt, irgendwie hatte ich anscheinend einen Fehler im Javascript verursacht. Habs einfach so gemacht:

      Javascriptdatei:
      nur den Quelltext einfügt ohne: <script></script>

      und in die HTML:

      <p id="Datum">
         <script type="text/javascript" src="letztesDatum.js"></script>
      </P>

      Mich würde es noch interessieren, ob ich das hier:

      <script type="text/javascript" src="letztesDatum.js"></script>

      auch einfach in den Head reinkloppen könnte und irgendwie die Variable "UpdateText" dann hier einfügen könnte:

      <p id="Datum">
          document.write(UpdateText);
      </p>

      Wie kann ich dem Browser sozusagen sagen: Hier lad das schonmal und dann füg das Ergebnis des Scriptes einfach an DER Stelle ein. Dass ich den Quelltext im Bodybereich so gering halte wie es nur geht. Also so irgendwie:

      head
      <script type="text/javascript" src="letztesDatum.js"></script>
      head
      body
      <p id="Datum">
      document.write(UpdateText);
      </p>

      Geht das Überhaupt?
      Vielen Dank

      1. Mich würde es noch interessieren, ob ich das hier:

        <script type="text/javascript" src="letztesDatum.js"></script>

        auch einfach in den Head reinkloppen könnte und irgendwie die Variable "UpdateText" dann hier einfügen könnte
        Geht das Überhaupt?

        Ja, kannst du.

        es geht auch ohne ID nur durch Einbiden einer Script-Datei im <head> wie bei meinem Beispiel

        gruesse qx

  4. Hi!
    Du bist nicht weiter drauf eingegangen, wie genau du das Script einbindest. (Weshalb ich aus Zeitgründen auch erstmal nicht weiter auf eventuelle Scriptfehler geschaut hab)

    Variante 1 funktioniert nicht?

    <p id="datum">
      <script type="text/javascript">
        document.write("DATUM");
      </script>
    </p>

    Variante 2 funktioniert auch nicht?

    JS-Datei datum.js:
    document.write("DATUM");

    HTML:
    <p id="datum">
      <script type="text/javascript" src="datum.js"></script>
    </p>

    funktioniert auch nicht?

    Was sagt der Browser? Gibts keine Fehlermeldungen? (in der Statusleiste unten)

    Variante 3 mit Funktion und DOM-Manipulation spar ich grad mal.

    Hast Du Javascript aktiviert?

    --
    Signaturen sind bloed.
    1. Es hat sich alles geklärt, irgendwie hatte ich anscheinend einen Fehler im Javascript verursacht. Habs einfach so gemacht:

      Javascriptdatei:
      nur den Quelltext einfügt ohne: <script></script>

      und in die HTML:

      <p id="Datum">
         <script type="text/javascript" src="letztesDatum.js"></script>
      </P>

      Mich würde es noch interessieren, ob ich das hier:

      <script type="text/javascript" src="letztesDatum.js"></script>

      auch einfach in den Head reinkloppen könnte und irgendwie die Variable "UpdateText" dann hier einfügen könnte:

      <p id="Datum">
          document.write(UpdateText);
      </p>

      Wie kann ich dem Browser sozusagen sagen: Hier lad das schonmal und dann füg das Ergebnis des Scriptes einfach an DER Stelle ein. Dass ich den Quelltext im Bodybereich so gering halte wie es nur geht. Also so irgendwie:

      head
      <script type="text/javascript" src="letztesDatum.js"></script>
      head
      body
      <p id="Datum">
      document.write(UpdateText);
      </p>

      Geht das Überhaupt?
      Vielen Dank

      1. Hallo

        auch einfach in den Head reinkloppen könnte und irgendwie die Variable "UpdateText" dann hier einfügen könnte:

        <p id="Datum">
            document.write(UpdateText);
        </p>

        Wie kann ich dem Browser sozusagen sagen: Hier lad das schonmal und dann füg das Ergebnis des Scriptes einfach an DER Stelle ein. Dass ich den Quelltext im Bodybereich so gering halte wie es nur geht. Also so irgendwie:

        head
        <script type="text/javascript" src="letztesDatum.js"></script>
        head
        body
        <p id="Datum">
        document.write(UpdateText);
        </p>

        Geht das Überhaupt?

        Ja, das geht.
        Aber du mußt dem Browser sagen, daß es hier mit Javascrit weitergeht und nicht mit HTML:

        <p id="Datum">
           <script type="text/javascript">
              document.write(UpdateText);
           </script>
        </p>

        ...und natürlich das schliessende script-Tag nicht vergessen, damit der Browser weiß, daß der Javascript-Bereich hier zu Ende ist und es jetzt wieder mit HTML weitergeht.

        Gruß
        Peter

      2. Hi!

        Javascriptdatei:
        nur den Quelltext einfügt ohne: <script></script>

        Ja klar. In einer JS Datei steht nur JS und keine HTML Tags.

        Mich würde es noch interessieren, ob ich das hier:

        <script type="text/javascript" src="letztesDatum.js"></script>

        auch einfach in den Head reinkloppen könnte und irgendwie die Variable "UpdateText" dann hier einfügen könnte:

        <p id="Datum">
            document.write(UpdateText);
        </p>

        Geht das Überhaupt?

        Ja. Einen Weg hat Dir peter schon aufgezeigt. Du kannst im JS im head eine Variable erstellen und dann unten im Element benutzen.

        Das ist aber eher unpraktisch. Du brauchst gar kein Script im HTML. Wenn ich nicht irre wurde in diesem Thread auch schon darauf eingegangen.

        Du musst nur dafuer sorgen, dass dein Code erst laeuft, wenn die Datei zuende geladen und das DOM fertig ist. Dann kannst Du in deinem Beispiel ueber die ID das Element manipulieren... und jetzt grad seh ich, dass du hier 3x dasselbe geposted und auch schon eine Antwort bekommen hast...

        Dann arbeite ich wohl besser mal weiter...

      3. Hallo,

        Es hat sich alles geklärt, irgendwie hatte ich anscheinend einen Fehler im Javascript verursacht.

        bitte lass diese identischen Doppel- und Dreifachposts innerhalb eines Threads.
        Poste deine Antwort nächstes Mal stellvertretend an _einer_ Stelle, das genügt. Danke.

        Ciao,
         Martin

        --
        Der Klügere gibt solange nach, bis er der Dumme ist.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(