HTML/Skripte/script

Aus SELFHTML-Wiki
< HTML‎ | Skripte(Weitergeleitet von Noscript)
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.

  • IE
  • Firefox
  • Chrome
  • Opera
  • Safari

Folgende Angaben sind möglich:

  • async: Das Script wird ausgeführt, sobald es geladen ist.
    • HTML5
    • IE 10
    • Firefox
    • Chrome
    • Opera
    • Safari
  • charset: Wenn Sie mit src ein externes Script einbinden, können Sie zusätzlich mit dem Attribut charset die Zeichenkodierung 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 Codierung utf-8 verwenden soll. Erlaubt sind Codierungsangaben, 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
    • Chrome
    • Firefox
    • IE
    • Opera
    • Safari
  • 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 jedes Mal in der Datei zu notieren. Ein Beispiel und genauere Hinweise dazu finden Sie im Abschnitt JavaScript in HTML referenzieren.
  • 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.
    Neben JavaScript gab es eigentlich nur VBScript von Microsoft, das aber auch nur im IE bis zur Version 10 funktionierte und dessen Unterstützung in Edge entzogen wurde.
Beachten Sie: Das immer noch oft genutzte Attribut language wurde als deprecated eingestuft. Moderne Browser erkennen Scripte mit JavaScript auch ohne diese Angaben.

Anwendungsbeispiel[Bearbeiten]

Beispiel ansehen …
<!doctype html> <html lang="de"> <head> <meta charset="utf-8"> <title>script-Bereiche definieren</title> <script>
    function Zeit () {
      var datum = new Date();
        document.querySelector('output').innerHTML = datum.toLocaleString('de-DE');
      }
      }
</script> </head> <body> <h1>script-Bereiche definieren</h1> <div> <h2>Aktuelle Nachrichten …</h2> <output></output> </div> <script>
      Zeit();
</script> </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.

Sie können <script> im Dateikopf, also zwischen <head> und </head>, oder auch innerhalb des Dateikörpers, also zwischen <body> und </body> platzieren.

Dabei können Sie im head noch nicht mit DOM-Methoden auf Bereich im body zugreifen, die noch nicht geparst und gerendert sind. Trotzdem sollten Sie JavaSCript im head notieren und erst ausführen, wenn das DOM geladen ist.

Noscript-Bereich definieren[Bearbeiten]

Der Inhalt des noscript-Elements wird angezeigt, wenn in einem Kontext Javascript deaktiviert ist.

Seit HTML5 ist es möglich in html (nicht aber in xml und xhtml) sowohl im head und im body des Dokuments ein oder mehrere noscript-Elemente zu schreiben. Da heute praktisch alle Geräte JavaScript ausführen, richtet sich die Verwendung des Elements an Nutzer, die (oder deren Systemadministrator) aus welchen Gründen auch immer JavaScript bewusst deaktiviert haben.

Die Rolle des noscript-Elements ist damit,

  • dem Nutzer beim Vergeben einer Javascript-Freigabe in seinem Browser oder Plugin zu helfen und
  • dem Nutzer Links zu alternativen Ressourcen bereitzustellen.

Wenn Sie um eine Freigabe erbitten, so erwähnen Sie

  • die Domain, für welche die Freigabe erforderlich ist, und
  • das betroffene Script, für welches die Freigabe erforderlich ist.

Verzichten Sie darauf, das noscript-Element selber zu stylen. Schreiben Sie besser einen gut strukturierten Inhalt und versehen diesen mit Styles.

Beispiel ansehen …
<!doctype html> <html> <head> <meta charset="utf-8"> <title>noscript-Bereiche definieren</title> <script src="beispiel.js"></script> </head> <body> <noscript> <div class="noscript alternative js-required"> <p> <strong>Eine Javascript-Freigabe ist erforderlich!</strong><br> Betroffen ist ein Javascript-Beispiel. </p> <ul> <li>Site: https://example.org</li> <li>Script: example.js</li> <ul> <p> Eine scriptfreie Beschreibung des Beispiels finden Sie unter <a href="example_js_alternative.html">example_js_alternative</a><br> Danke für Ihr Verständnis. </p> </div> </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 User wird eine Anleitung gegeben, wie sie die minimal erforderliche Javascript-Freigabe in ihrem Browser oder Plugin machen können. Zudem wird ein Link zu einer alternativen Beschreibung angeboten.

Mit <noscript> leiten Sie einen Noscript-Bereich ein, mit </noscript> beenden Sie ihn. Ein noscript Element darf enthalten, was immer in seinem Eltern-Element erlaubt ist. Es darf aber selbst kein noscript-Element enthalten.

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. Falls also ein anderer Mechanismus (z.B. eine Firewall) das Laden einer Javascript-Datei verhindert, wird das noscript-Element nicht angezeigt.

Siehe auch[Bearbeiten]