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>
Darstellung
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 ist 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.