Einbinden usw. (starkes verständnisproblem)
Simon P.
- javascript
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.
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.
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
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
Danke an alle die mir geholfen haben!
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
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
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
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
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?
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
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
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...
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