Problem mit <script>
Christian
- html
0 Christian Kruse0 Problem mit <script>, Aufruf fehlt!
Camping_RIDER0 Tabellenkalk
Hi Leute,
ich will mein JS in eine externe Datei einbinden und folge dem Beispiel aus dem wiki (quadrat.js). Die Seite bleibt komplett weiß, es wird auch nicht der <body> ausgeführt. Die html- und js-Seiten liegen im gleichen Verzeichnis.
Quellcode x.html:
<!DOCTYPE html>
<html>
<head>
<title>Test.js</title>
<script src="test.js"/>
</head>
<body>
HALLO mnsdkfjksdlfjksdljflsdjflksdjfjsdflkjsdfkljsdfkljksdl
</body>
</html>
test.js:
function test() {
alert ("test.js");
}
Ich weiß nicht weiter.
Viele Grüße Christian
Hallo Christian,
<!DOCTYPE html> <html> <head> <title>Test.js</title> <script src="test.js"/> </head> <body> HALLO mnsdkfjksdlfjksdljflsdjflksdjfjsdflkjsdfkljsdfkljksdl </body> </html>
Du kannst script
nicht verkürzen, du musst <script src="test.js"></script>
ausschreiben.
LG,
CK
Aloha ;)
Du kannst
script
nicht verkürzen, du musst<script src="test.js"></script>
ausschreiben.
Jein. Man sollte nicht. Manche Browser können damit umgehen, manche nicht.
Grüße,
RIDER
Hallo Camping_RIDER,
Du kannst
script
nicht verkürzen, du musst<script src="test.js"></script>
ausschreiben.Jein. Man sollte nicht.
Nein, man darf nicht. In XHTML ist das für script
explizit verboten:
<!ELEMENT script (#PCDATA)>
(beachte das fehlende EMPTY
) und HTML5 kennt self-closing tags nicht.
Manche Browser können damit umgehen, manche nicht.
Dass manche Browser eine Error-Recovery dafür haben ist in der Tat richtig.
LG,
CK
Aloha ;)
Du kannst
script
nicht verkürzen, du musst<script src="test.js"></script>
ausschreiben.Jein. Man sollte nicht.
Nein, man darf nicht. In XHTML ist das für
script
explizit verboten:<!ELEMENT script (#PCDATA)>
(beachte das fehlende
EMPTY
und HTML5 kennt self-closing tags nicht.
Ah, okay. Danke für die Klarstellung. War mir in der Intensität für XHTML nicht bewusst.
War es aber nicht so, dass self-closing tags in HTML5 verwendet werden können - und ist das eventuell unabhängig von der XHTML-Spec? Ich hab da sowas im Hinterkopf, dass die HTML5-Spec da dementsprechend liberal wäre.
Kann mich aber auch täuschen, bin ja selbst nicht immer HTML5-firm :D
Grüße,
RIDER
Hallo Camping_RIDER,
War es aber nicht so, dass self-closing tags in HTML5 verwendet werden können - und ist das eventuell unabhängig von der XHTML-Spec? Ich hab da sowas im Hinterkopf, dass die HTML5-Spec da dementsprechend liberal wäre.
Nur für bestimmte Tags, script
gehört nicht dazu.
LG,
CK
@@Christian Kruse
War es aber nicht so, dass self-closing tags in HTML5 verwendet werden können - und ist das eventuell unabhängig von der XHTML-Spec? Ich hab da sowas im Hinterkopf, dass die HTML5-Spec da dementsprechend liberal wäre.
Nur für bestimmte Tags,
script
gehört nicht dazu.
Und zwar bei denjenigen Elementen, bei denen der HTML-Parser kein End-Tag erwartet: leere Elemente und solche, deren End-Tag in HTML optional ist.
Und wie du sagtest: script
gehört nicht dazu.
LLAP 🖖
Hallo und guten Tag,
Darf man denn dann im Script-Element trotzdem noch Inhalt notieren, obwohl man schon eine externe Source angegeben hat?
Grüße
TS
Hallo TS,
Darf man denn dann im Script-Element trotzdem noch Inhalt notieren, obwohl man schon eine externe Source angegeben hat?
If there is a src attribute, the element must be either empty or contain only script documentation that also matches script content restrictions.
Das gleiche gilt im wesentlichen für HTML4 und XHTML:
If the src has a URI value, user agents must ignore the element's contents and retrieve the script via the URI.
LG,
CK
@@Christian Kruse
Darf man denn dann im Script-Element trotzdem noch Inhalt notieren, obwohl man schon eine externe Source angegeben hat?
Nein, ist es nicht. Zitierst du doch selber:
If there is a src attribute, the element must be either empty or contain only script documentation that also matches script content restrictions.
“or contain only script documentation” Und wenn du auf script documentation clicks, wird erklärt, was als Inhalt vorkommen darf: JavaScript-Kommentare.
LLAP 🖖
Hallo Gunnar,
Darf man denn dann im Script-Element trotzdem noch Inhalt notieren, obwohl man schon eine externe Source angegeben hat?
Nein, ist es nicht. Zitierst du doch selber:
Das ist nicht das, was gemeint war :-)
LG,
CK
Hallo und guten Tag Gunnar,
GRRR
Darf man denn dann im Script-Element trotzdem noch Inhalt notieren, obwohl man schon eine externe Source angegeben hat?
Nein, ist es nicht. Zitierst du doch selber:
If there is a src attribute, the element must be either empty or contain only script documentation that also matches script content restrictions.
“or contain only script documentation” Und wenn du auf script documentation clicks, wird erklärt, was als Inhalt vorkommen darf: JavaScript-Kommentare.
Das habe ich auch so verstanden und bin sicher, dass jeder Andere, der den Thread mitliest, das auch verstanden hat. Es dürfen nur Kommentare darin vorkommen, keine Definitionen (und Deklarationen).
Kennt JavaScript eigentlich auch reine Deklarationen für Funktionen, also separierte Funktions/Methoden-Signaturen?
Grüße
TS
Aloha ;)
Kennt JavaScript eigentlich auch reine Deklarationen für Funktionen, also separierte Funktions/Methoden-Signaturen?
Sowas wäre mir nicht bekannt - und in JavaScript bin ich eigentlich ziemlich firm. Ich werds aber mal nochmal nachschlagen.
Die Hauptfrage und der Grund, warum es das wahrscheinlich nicht gibt ist: wozu?
JavaScript braucht keinem Compiler vorher mitzuteilen, was an Funktionen kommt (es ist ja eine Skriptsprache), und es ist genau eins der mächtigen Instrumente in JavaScript, dass Funktionen "on the fly" entstehen können, da sie genau wie andere Variablen behandelt werden.
Ein sinnvoller Grund ist dann lediglich noch die Dokumentation für Leser, die findet aber typischerweise in Kommentaren und damit sinnvoll vom ausführbaren Rest getrennt statt.
@Nachtrag: Eine kurze Suche hat wie erwartet nix ergeben. Typischerweise kennt man solche reinen Deklarationen ja auch von Sprachen, die feste Speichertypen und eine feste Typisierung von Variablen haben, da ist eine eigenständige Funktionsdeklaration vorab für den Compiler nötig - und auch Typisierung von Variablen ist ein Grundkonzept, das in JavaScript gerade nicht angewandt wird - mit vielen Vorteilen und einigen wenigen Nachteilen.
Grüße,
RIDER
Kennt JavaScript eigentlich auch reine Deklarationen für Funktionen, also separierte Funktions/Methoden-Signaturen?
Du meinst Interfaces? Nein das gibt es in JavaScript nicht.
Würde auch wenig Sinn machen weil JavaScript dynamisch typisiert ist und Funktionen keine festen Typangaben für Parameter und Rückgabewert erlauben. Auch die Anzahl der deklarierten Parameter ist nicht bindend, man kann die Funktion problemlos mit weniger oder mehr Parametern aufrufen.
Simon
Hallo und guten Tag Christian,
Darf man denn dann im Script-Element trotzdem noch Inhalt notieren, obwohl man schon eine externe Source angegeben hat?
If there is a src attribute, the element must be either empty or contain only script documentation that also matches script content restrictions.
Das gleiche gilt im wesentlichen für HTML4 und XHTML:
If the src has a URI value, user agents must ignore the element's contents and retrieve the script via the URI.
Ich danke Dir.
Das sollte man in die Wiki-Seiten aufnehmen und auch Beispiele dazu angeben, was erlaubt und was verboten ist. Ich habe "eben mal gesucht" im Wiki, also mich so durchgehangelt, wie ein Fremder Click-Surfer, der da 30 Google-Links nacheinander anklickt für eine Antwort auf seine Frage "Wie bindet man externes JS in ein HTML-Dokument ein" und konnte im Self-Wiki nicht fündig werden.
Grüße
TS
Hallo TS,
Das sollte man in die Wiki-Seiten aufnehmen und auch Beispiele dazu angeben, was erlaubt und was verboten ist. Ich habe "eben mal gesucht" im Wiki, also mich so durchgehangelt, wie ein Fremder Click-Surfer, der da 30 Google-Links nacheinander anklickt für eine Antwort auf seine Frage "Wie bindet man externes JS in ein HTML-Dokument ein" und konnte im Self-Wiki nicht fündig werden.
Wer ist „man“? ;-) Aber das ist grundsätzlich ein guter Hinweis. Wenn du magst, … Ein geeigneter Platz wäre wohl http://wiki.selfhtml.org/wiki/Script
Bis demnächst
Matthias
Hallo und guten Tag Matthias,
Das sollte man in die Wiki-Seiten aufnehmen und auch Beispiele dazu angeben, was erlaubt und was verboten ist. Ich habe "eben mal gesucht" im Wiki, also mich so durchgehangelt, wie ein Fremder Click-Surfer, der da 30 Google-Links nacheinander anklickt für eine Antwort auf seine Frage "Wie bindet man externes JS in ein HTML-Dokument ein" und konnte im Self-Wiki nicht fündig werden.
Wer ist „man“? ;-)
jedenfalls noch nicht ich. Da fehlt mir noch die Sachkenntnis.
Aber das ist grundsätzlich ein guter Hinweis. Wenn du magst, … Ein geeigneter Platz wäre wohl http://wiki.selfhtml.org/wiki/Script
"Man" sollte auf jeden Fall von allen Seiten, die sich mit JavaScript beschäftigen an geeigneter Stelle einen Link auf die Verbindung "HTML <-> JavaScript" bekommnen.
Das könnte ggf. sogar ein eigenes Thema sein: Wie und wo darf/muss/kann JS in HTML eingebunden werden? Was wird wann aktiv? Arbeitet der Browser da beim Laden parellel (Mutlithreading) oder sequentiell?
Alles Fragen, die immer wieder aufkommen und in Einzelthreads auch behandelt werden, sich aber in der Doku nirgends oder nur schwer finden lassen.
Grüße
TS
@@TS
Das könnte ggf. sogar ein eigenes Thema sein: Wie und wo darf/muss/kann JS in HTML eingebunden werden?
Und auch: Wie sollte? Im head
oder body
? Mit async
-/defer
-Attributen?
Arbeitet der Browser da beim Laden parellel (Mutlithreading) oder sequentiell?
D.h.: Blockiert der Browser beim Laden der Scripte das Rendern der Seite?
LLAP 🖖
Hallo TS,
Das sollte man in die Wiki-Seiten aufnehmen und auch Beispiele dazu angeben, was erlaubt und was verboten ist. Ich habe "eben mal gesucht" im Wiki, also mich so durchgehangelt, wie ein Fremder Click-Surfer, der da 30 Google-Links nacheinander anklickt für eine Antwort auf seine Frage "Wie bindet man externes JS in ein HTML-Dokument ein" und konnte im Self-Wiki nicht fündig werden.
Wer ist „man“? ;-)
jedenfalls noch nicht ich. Da fehlt mir noch die Sachkenntnis.
Deine Beiträge lassen gegenteiliges vermuten.
Bis demnächst
Matthias
Hallo und guten Abend,
Wer ist „man“? ;-)
jedenfalls noch nicht ich. Da fehlt mir noch die Sachkenntnis.
Deine Beiträge lassen gegenteiliges vermuten.
Das ist nur Oberfläche, breit aufgestellt, aber leider nicht into the depth. Allerdings weiß ich meistens auch schon, dass ich nicht weiß - leider eben noch nicht immer.
Gelegentlich braucht man die solide Selbstüberschätzung aber einfach auch zum Überleben ;-)
Grüße
TS
@@TS
Das ist nur Oberfläche, breit aufgestellt, aber leider nicht into the depth. Allerdings weiß ich meistens auch schon, dass ich nicht weiß - leider eben noch nicht immer.
Dann bist du wohl Fortgeschrittener. ;-)
LLAP 🖖
Hallo und guten Abend,
Dann bist du wohl Fortgeschrittener. ;-)
... und alles Wissen nur soviel taugt, wie Du verstehst, Kompetenz zu simulieren :-)
Grüße
TS
Das sollte man in die Wiki-Seiten aufnehmen und auch Beispiele dazu angeben, was erlaubt und was verboten ist. Ich habe "eben mal gesucht" im Wiki, also mich so durchgehangelt, wie ein Fremder Click-Surfer, der da 30 Google-Links nacheinander anklickt für eine Antwort auf seine Frage "Wie bindet man externes JS in ein HTML-Dokument ein" und konnte im Self-Wiki nicht fündig werden.
Ich hab mal 2 Links auf den bestehenden Artikel JavaScript in HTML einbinden eingefügt:
LG Matthias
@@Christian Kruse
Nein, man darf nicht. In XHTML ist das für
script
explizit verboten:
<!ELEMENT script (#PCDATA)>
Wie woodfighter schon sagte, hängt die Verwendung der Kurzschreibweise in X(HT)ML nicht am Inhalts_modell_, sondern am tatsächlichen Inhalt. Man darf also die Kurzschreibweise verwenden.
Und in XHTML5 funktioniert das auch (wenn man’s richtig macht).
LLAP 🖖
Tach,
Du kannst
script
nicht verkürzen, du musst<script src="test.js"></script>
ausschreiben.Jein. Man sollte nicht. Manche Browser können damit umgehen, manche nicht.
nö: in XHTML 1.0 ist der Wortlaut: „Given an empty instance of an element whose content model is not EMPTY (for example, an empty title or paragraph) do not use the minimized form (e.g. use <p> </p> and not <p />).“, allerdings ist das im nicht-normativen Appendix, da wäre es also im Prinzip erlaubt; aber in HTML5 ist script kein self-closing Tag und damit wird das script-Element nicht geschlossen. „/>“ wird in HTML5 als zu ignorierendes Attribut „/“ + Tagende interpretiert und bedeutet nicht das selbe wie in XML, die Wirkung ist nur bei self-closing Tags die selbe und da kann man es auch weglassen.
mfg
Woodfighter
Hallo Leute,
vielen Dank für die Hinweise. Es funktioniert. Es kann gut sein, dass ich noch ein paar andere Fragen stelle.
Grüßé Christian
Hallo Christian,
<!DOCTYPE html> <html> <head> <title>Test.js</title> <script src="test.js"/> </head> <body> HALLO mnsdkfjksdlfjksdljflsdjflksdjfjsdflkjsdfkljsdfkljksdl </body> </html>
Du kannst
script
nicht verkürzen, du musst<script src="test.js"></script>
ausschreiben.LG,
CK--
> CK kennt Wayne
Aloha ;)
Zuerst mal Hallo hier im Forum ;)
Die Antwort ist ziemlich einfach: du definierst die Funktion im JavaScript, rufst sie aber nie auf. Der Aufruf kann direkt im js passieren, etwa so:
function test() {
alert ("test.js");
}
test();
Oder wahlweise auch nach dem Laden der Seite:
function test() {
alert ("test.js");
}
document.body.addEventListener("load",test);
Quellcode ist nicht getestet, sollte aber weiterhelfen.
Grüße,
RIDER
Hallo,
ich will mein JS in eine externe Datei einbinden und folge dem Beispiel aus dem wiki (quadrat.js).
Magst du das Beispiel verlinken, so dass mal jemand drüber schauen kann, ob das Beispiel selbst irreführend ist?
Gruß
Kalk
Magst du das Beispiel verlinken, so dass mal jemand drüber schauen kann, ob das Beispiel selbst irreführend ist?
So hier ist das aktualisierte Beispiel - das alte Beispiel war 1:1 aus der alten Doku.
JavaScript-Dateien in HTML referenzieren
Leider funktioniert es (noch) nicht, da die Datei Quadrat.js durch media-wiki an einem anderen Ort gespeichert wurde.
@@Matthias Apsel, dedlfix: Könnt ihr das bitte fixen?
Vielen Dank im Voraus!
Matthias Scharwies
Tach!
@@Matthias Apsel, dedlfix: Könnt ihr das bitte fixen?
Erledigt.
dedlfix.
Vielen Dank!
Matthias Scharwies