CSS, HTML und Javascript mit {stil}

HTML noscript

HTML noscript

HTML noscript stellt alternativen Inhalt bereit, wenn der Browser das script-Tag nicht erkennt oder Scripte im Browser deaktiviert sind.

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.

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

Beispiel

Browsern, in denen JavaScript aktiviert 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. Besuchern, bei denen JavaScript deaktiviert ist, wird statt der Auswahlliste eine ungeordnete Liste mit Links geboten.

<script type="text/javascript"> 
   var 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> 

Darstellung

JavaScript deaktivieren, um die unterschiedliche Darstellung zu sehen.

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 body-Tag wird class="no-js" eingesetzt und mit Javascript entfernt.

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

Auch aus Sicht der Suchmaschinen-Optimierung ist das noscript-Tag keine Option. In der Vergangenheit wurde das noscript-Tag missbraucht, um Keywords und Links unterzubringen.