HTML/Skripte/script

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Mit dem Element script können Sie einen oder mehrere Script-Bereiche definieren. Innerhalb von Script-Bereichen können Sie Anweisungen der verwendeten Script-Sprache notieren. Sie können <script> im Dateikopf, also zwischen <head> und </head>, oder auch innerhalb des Dateikörpers, also zwischen <body> und </body> platzieren.

  • IE
  • Firefox
  • Chrome
  • Safari
  • Opera
Beispiel ansehen …
<!doctype html> <html> <head> <meta charset="utf-8"> <title>script-Bereiche definieren</title> <script> function Zeit () { var Jetzt = new Date(); var Tag = Jetzt.getDate(); var Monat = Jetzt.getMonth() + 1; var Jahr = Jetzt.getYear(); if (Jahr < 999) { Jahr += 1900 } var Vortag = ((Tag < 10) ? "0" : ""); var Vormon = ((Monat < 10) ? ".0" : "."); var Datum = Vortag + Tag + Vormon + Monat + "." + Jahr; document.write("<h1>" + Datum + "<\/h1>"); } </script> </head> <body> <script> Zeit(); </script> <p>Aktuelle Nachrichten …</p> </body> </html>

Mit <script> leiten Sie einen Script-Bereich ein, mit </script> beenden Sie den Bereich. Innerhalb des Bereichs können Sie Anweisungen der verwendeten Script-Sprache notieren. Aus Sicht von HTML wird alles, was innerhalb des Bereichs steht, als "nackter Text" betrachtet. Dabei kann es allerdings zu Konflikten zwischen einer Sprache wie JavaScript und einem streng SGML-konformen Seite HTML-Parser kommen. Ein solcher Parser betrachtet den Script-Bereich als beendet, sobald er auf die nächste Zeichenfolge </ stößt. Wenn Sie innerhalb von JavaScript diese Zeichenfolge benötigen, wie im obigen Beispiel in der letzten Anweisung, wo mit Hilfe von document.write eine Überschrift erster Ordnung ins Dokument geschrieben wird. Am Ende des ausgegebenen Textes ist dort <\/h1> notiert statt </h1>. Der Backslash dient in JavaScript dazu, ein nachfolgendes Zeichen zu maskieren, was im Beispiel an der Stelle aus JavaScript-Sicht aber keine weitere Bedeutung hat und nichts weiter bewirkt. Der Backslash ist auch nicht für den JavaScript-Interpreter gedacht, sondern für penible HTML-Parser.

Folgende Angaben sind möglich:

  • async: Das Script wird ausgeführt, sobald es geladen ist.
    • HTML5
    • IE 1010
    • Firefox
    • Chrome
    • Safari
    • Opera
  • charset: Wenn Sie mit src ein externes Script einbinden, können Sie zusätzlich mit dem Attribut charset die Kodierung angeben, nach der die externe Quelle verarbeitet werden soll. Das ist beispielsweise wichtig, wenn Sie in einem Script deutsche Umlaute und Sonderzeichen nicht maskieren, z.B. bei HTML-Ausgaben. In diesem Fall können Sie charset="utf-8" angeben, um dem Browser mitzuteilen, dass er die Kodierung utf-8 verwenden soll. Erlaubt sind Kodierungsangaben, wie sie unter http://www.iana.org/assignments/character-sets angegeben sind.
  • defer: Das (externe) Script wird erst ausgeführt, wenn die Seite geladen ist.
    • HTML5
    • IE
    • Firefox
    • Chrome
    • Safari
    • Opera
  • src: bindet ein Script ein, das in einer separaten Datei notiert ist. Das ist von Vorteil, wenn Sie ein Script auf vielen Seiten verwenden wollen. Dann brauchen Sie das Script nur noch zu referenzieren, statt es jedesmal in der Datei zu notieren. Ein Beispiel und genauere Hinweise dazu finden Sie im Abschnitt JavaScript in separaten Dateien.
  • type: gibt an, welche Script-Sprache Sie innerhalb des Bereichs benutzen möchten. Als Wert weisen Sie den MIME-Typ der Script-Sprache zu. In HTML5 ist der Defaultwert text/javascript. Das bedeutet, Sie brauchen nur dann ein type-Attribut anzugeben, wenn Sie eine andere Scriptsprache als JavaScript verwenden.
Beachten Sie: Das immer noch oft genutzte Attribut language wurde als deprecated eingestuft. Moderne Browser erkennen Scripte mit JavaScript auch ohne diese Angaben. Näheres finden Sie im Abschnitt JavaScript-Bereiche in HTML definieren.

[Bearbeiten] Noscript-Bereich definieren

Sie können einen Bereich definieren, der nur angezeigt wird, wenn die verwendete Script-Sprache nicht verfügbar ist, das Script also nicht ausführbar ist. Dies ist der Fall, wenn der Browser die Script-Sprache nicht kennt, oder wenn der Anwender das Interpretieren der Script-Sprache in den Einstellungen seines Browsers ausgeschaltet hat.

Wichtig ist eine solche Angabe beispielsweise, wenn Ihre Seiten intensiv JavaScript benutzen um Inhalte anzuzeigen oder Verweise auszuführen. In solchen Fällen ist ein Projekt ohne JavaScript kaum nutzbar. Mit einem Noscript-Bereich können Sie einen entsprechenden Hinweis einbauen.

Beispiel ansehen …
<!doctype html> <html> <head> <meta charset="utf-8"> <title>noscript-Bereiche definieren</title> <script> function Zeit () { var Jetzt = new Date(); var Tag = Jetzt.getDate(); var Monat = Jetzt.getMonth() + 1; var Jahr = Jetzt.getYear(); if (Jahr < 999) { Jahr += 1900 } var Vortag = ((Tag < 10) ? "0" : ""); var Vormon = ((Monat < 10) ? ".0" : "."); var Datum = Vortag + Tag + Vormon + Monat + "." + Jahr; document.write("<h1>" + Datum + "<\/h1>"); } </script> </head> <body> <script> Zeit(); </script> <noscript> <h1>In Ihrem Browser ist JavaScript deaktiviert.</h1> <p>Im SELFHTML-Wiki erfahren Sie, <a href="https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/JavaScript_aktivieren"> wie Sie JavaScript in Ihrem Browser aktivieren können. </a> </p> </noscript> <p>Aktuelle Nachrichten …</p> </body> </html>
Das Beispiel enthält genau die gleichen Scripts wie weiter oben beschrieben. Diesmal wurde jedoch zusätzlich an Browser gedacht, die kein JavaScript kennen, oder bei denen JavaScript ausgeschaltet ist. Für solche Browser wird an der Stelle, an der bei script-fähigen Browsern die script-erzeugte h1-Überschrift mit dem aktuellen Datum eingesetzt wird, einfach eine Warnmeldung notiert.

Mit <noscript> leiten Sie einen Noscript-Bereich ein, mit </noscript> beenden Sie ihn. Dazwischen werden Block-Elemente erwartet, also beispielsweise Überschriften, Textabsätze oder div-Bereiche.

Web-Browser, die das noscript-Element kennen, zeigen den Inhalt dazwischen nur dann an, wenn der Anwender die benutzte Script-Sprache, etwa JavaScript, deaktiviert hat. Web-Browser, die gar keine Script-Sprachen kennen, kennen zwar auch das noscript-Element nicht, aber einer alten Regel gemäß ignorieren sie die Auszeichnung einfach und zeigen den Inhalt des Elements ganz normal an.

Beachten Sie: Der Inhalt des noscript-Elementes wird nur dann angezeigt, wenn die gewählte Scriptsprache nicht zur Verfügung steht; ob auch tatsächlich ein Script vorhanden ist, wird nicht geprüft.

[Bearbeiten] siehe auch

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Übersicht
Schnell‑Index
Mitmachen
Werkzeuge
Spenden
SELFHTML