Ich war in letzter Zeit auf einer "View Source" -Bummel auf Websites mit interessantem Design und Inhalt. Eine dieser Websites, Squarespace , enthält Blöcke von <script>
Tags in einem <noscript>
Tag, wie folgt :
<!-- Page is at: http://squarespace.com -->
...
...
<noscript id="inline-deps">
<link rel="stylesheet" type="text/css" href="//cloud.typography.com/7811972/758964/css/fonts.css" />
<script type="text/javascript" src="https://static.squarespace.com/static/ta/5134cbefe4b0c6fb04df8065/7400/assets/logomark/logomark.min.js?37"></script>
<link rel="stylesheet" href="https://static.squarespace.com/static/ta/5134cbefe4b0c6fb04df8065/7400/assets/logomark/logomark.min.css?37" type="text/css" />
</noscript>
...
...
Es kam mir seltsam vor und brachte mich dazu, nach Informationen zu googeln, um zu sehen, ob es eine versteckte Funktionalität / einen versteckten Zweck für solch ein seltsames Stück HTML gibt, aber ohne Erfolg. Gibt es einen Zweck, <script>
Tags in <noscript>
Elementen zu haben, oder ist dies nur ein Beispiel für schlechtes HTML?
javascript
html
noscript
Agent.Logic_
quelle
quelle
<base href="">
,<meta … />
,<title>
und<link … />
Elemente) es sieht aus wie sie missbrauchen<noscript>
für Templating.Antworten:
Ich habe den Code durchsucht und dieses Snippet gefunden (ich habe es bereinigt, um es besser lesbar zu machen):
Wie Sie sehen können, verfügt das
<noscript>
Tag über die ID#inline-deps
, auf die im Code (Zeile 3) verwiesen wird, um Abhängigkeiten asynchron und bei Bedarf zu laden.Sie verwenden wahrscheinlich ein
<noscript>
Element, da es ihnen ermöglicht, direkt auf DOM-Elemente zuzugreifen, anstatt es in eine Zeichenfolge oder einen Kommentar einfügen zu müssen (was ich besonders schlecht finde, da Kommentare nicht für tatsächliche Informationen gedacht sind) und es dann zu analysieren. Es verhindert auch die Ausführung von Skripten und CSS-Stilen, bis sie speziell geladen werden.Ich persönlich finde das einen Missbrauch des
<noscript>
Tags. Ich bin mir nicht mal sicher, ob es sich um gültigen HTML5-Code handelt. Wenn möglich, sollten andere Methoden verwendet werden, z. B. das Deklarieren von Abhängigkeiten in einem JavaScript-Objekt mit einem Skriptlader.quelle
<script type="text/html">...</script>
, für den gleichen Zweck verwendet - hat jemand Vor- / Nachteile der beiden?<noscript>
für Nicht-JavaScript-Benutzer sichtbar ist. Die meisten Websites unterstützen diese Benutzer einfach nicht, aber Sie möchten ihnen auch eine einfache erklärende Nachricht anzeigen.