HTML noscript-Tag

HTML noscript Tag wenn Javascript nicht aktiviert ist

HTML noscript stellt alternativen Inhalt bereit, wenn der Browser das script-Elemente nicht erkennt oder Javascript im Browser deaktiviert ist. Mit HTML5 kann noscript sowohl im body- als auch im head-Element des HTML-Dokuments stehen. Wenn noscript im head steht, dürfen nur meta-, link- und style-Tags im noscript-Tag notiert werden.

23-02-02 SITEMAP CSS HTML JS Basis JS Web Tutorial SVG

Nur für Browser ohne Javascript

Mit einem noscript-Element im body-Element können alle HTML-Tags verwendet werden, die im body-Tag einer normalen Webseite stehen dürfen. Der Inhalt des noscript-Elements wird aber nur angezeigt, wenn Javascript im Browser deaktivert ist oder der Browser keine Scripte ausführen kann.

noscript-Beispiele

Formulare werden häufig bereits clientseitig im Browser des Benutzers geprüft, um dem Benutzer das Ausfüllen zu erleichtern. Im noscript-Tag kann Benutzern, die Javascript deaktiviert haben, dass ihnen ohne Javascript ein komfortables Ausfüllen versagt bleibt.

Ein anderes Beispiel: Browsern, in denen JavaScript deaktiviert ist, oder die von Haus aus keinen Script-Support bieten, wird eine Select-Liste geboten. Wenn der Benutzer eine Option ausgewählt hat, wird er direkt auf die Seite geleitet.

<script type="text/javascript"> 
   const show = document.getElementById('showscript');
   …
</script> 
<!-- Für Browsern ohne Script-Unterstützung -->
<noscript> 
   <ul> 
      <li><a href="script.html">Das script-Tag</a> <br /></li>
      <li><a href="object.html">Das object-Tag</a> <br /></li>
      <li><a href="select.html">Das select-Tag</a> <br /></li>
   </ul> 
</noscript> 

JavaScript deaktivieren, um die unterschiedliche Darstellung zu sehen: Dann würde die vollständige Liste eingeblendet.

Das noscript-Tag ist beim Druck der Seite allerdings keine Lösung, denn die Browser führen JavaScript aus, bevor die Seite gedruckt wird.

Script-Support entdecken

Heute deaktiviert kaum jemand Javascript im Browser. Aber gestern bot die Generation der Handys vor dem iPhone keinen Javascript-Support, heute sind es der Hochsicherheitstrakt in einem Unternehmen oder ein Fernseher oder der Kühlschrank.

Dabei muss man sich darüber im Klaren sein, dass noscript eine schwache Methode ist, um fehlende Script-Unterstützung zu erkennen. Es kann durchaus sein, dass Script-Inhalt schon durch Proxie-Filter eliminiert oder durch die Firewall blockiert wird. Dann denkt der Browser, dass er Scripte erkennt und der Inhalt des noscript-Tags wird gar nicht erst angezeigt.

Die beste Praxis ist immer noch, Javascript für Verbesserungen der Benutzeroberfläche zu benutzen (Progressive Enhancement), aber nicht für die Darstellung des Inhalts.

Es gibt praktikablere Methoden, fehlende Script-Unterstützung zu erkennen. Das ist fast schon ein Standard: In das öffnende body-Tag wird class="no-js" eingesetzt und mit Javascript entfernt.

Ist class="no-js" vorhanden, dann haben wir keinen Script-Support und können Inhalt durch CSS einblenden.