it-swarm.com.de

Verwenden Sie das HTML-Kommentar-Tag <! - -> immer noch relevant für JavaScript-Code?

Ist es weiterhin relevant, HTML-Kommentartag um JavaScript-Code zu verwenden?

Ich meine

<html>
    <body>
        <script type="text/javascript">
            //<!--
            document.write("Hello World!");
            //-->
        </script>
    </body>
</html>
73
rajakvk

HTML-Kommentare, dh. <!-- -->, werden nicht mehr benötigt. Sie sollten Browser, die den <script>-Tag nicht verstanden haben, ermöglichen, sich ordnungsgemäß abzubauen. Diese Browser, z. Netscape 1.x wird nicht mehr in freier Wildbahn gefunden. Es hat also wirklich keinen Sinn mehr, HTML-Kommentare in Ihre Skript-Tags einzufügen.

Wenn Sie möchten, dass Ihr HTML-Code als XHTML oder XML validiert wird, möchten Sie wahrscheinlich ein auskommentiertes CDATA-Tag verwenden.


<script type="text/javascript">
//<![CDATA[
document.write("Hello World!");
//]]>
</script>

Der Grund dafür ist, dass Ihre <, >, &, " und ', die Teil Ihres Javascript-Codes sind, nicht als &lt;, &gt;, &amp;, &quot; und &apos; codiert werden müssen.

102
Asaph

Nicht wirklich, es sei denn, Sie richten sich an 20 Jahre alte Browser.

22
Sasha Chedygov

Es ist besser, JavaScript im gesamten Körper zu vermeiden. Es vereinfacht die Aktualisierung, vermeidet die Notwendigkeit von Kommentaren und zwingt Sie zur Planung für Benutzer, die kein JavaScript aktiviert haben, sowie für Benutzer mit aktiviertem JavaScript.

11
scragar

Nicht so, wie du es tust, nein.

Das <! - wird wie // in Javascript behandelt, daher sollte Ihr Code stattdessen wie folgt aussehen:

<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>

Der Unterschied zu Ihrem liegt darin, dass ein seltener, obskurer Browser, der das Skript-Tag möglicherweise nicht versteht, die Öffnung // auf den Bildschirm druckt, was den Zweck, das Kommentar-Tag dort zu platzieren, vereitelt.

Wenn Sie neugierig sind, finden Sie hier mehr Informationen: http://www.javascripter.net/faq/comments.htm

Am Ende wissen jedoch selbst super obskure Browser, die JavaScript nicht standardmäßig unterstützen (wie HTMLLayout-Browsing oder Netsurf), dass es besser ist, den Text nicht zwischen Skript-Tags zu rendern, daher ist er auf keinen Fall relevant. Alle Browser, die Sie möglicherweise interessieren, verstehen die <! - - Syntax. Es besteht also keine wirkliche Notwendigkeit, sie aus dem, was Sie bereits haben, zu entfernen, da sie js ist. Denken Sie daran, sie beim nächsten Mal nicht hinzuzufügen.

5
andwhyisit

Auch in modernen Browsern kann es nützlich sein. Ich bin heute tatsächlich auf dieses Problem gestoßen, gerade weil ich vermeiden wollte, dass Javascript in meine HTML eingebettet wurde.

Ich habe eine HTML-Seite, die über http://Host/variable_app_name/pagename bereitgestellt wird, wobei variable_app_name viele Werte haben kann (y'know, variable). Wenn auf statische Dateien zugegriffen werden soll, muss eine URL wie http://Host/static/variable_app_name/filename verwendet werden. Daher kann ich den Speicherort der statischen Datei nicht angeben, ohne zuerst den Speicherort des Browsers nach dem Wert von variable_app_name zu suchen.

Um auf die Haupt-Javascript-Datei zu verlinken, mache ich Folgendes:

<script type="text/javascript" >
   var variable_app_name = window.location.pathname.split('/')[1];
   document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
</script>

Der obige Code wird auch in der neuesten Version von Chrome explodieren, da das Skript-Tag in der Mitte einer JavaScript-Zeichenfolge beendet wird und der Rest der Zeichenfolge wie HTML interpretiert wird:

<script type="text/javascript" >
   var variable_app_name = window.location.pathname.split('/')[1];
   document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js">
</script>
\n');
</script>

Es gibt viele Möglichkeiten, dies zu beheben, aber ich benutze gerne einen HTML-Kommentar.

Mit HTML-Kommentar:

<script type="text/javascript" >
<!--
   var variable_app_name = window.location.pathname.split('/')[1];
   document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
-->
</script>

Aufbrechen der Javascript-Zeichenfolge:

<script type="text/javascript" >
   var variable_app_name = window.location.pathname.split('/')[1];
   document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></scr'+'ipt>\n');
</script>

Erstellen Sie das Skript-Tag und hängen Sie es an, anstatt document.write zu verwenden:

<script type="text/javascript" >
   var variable_app_name = window.location.pathname.split('/')[1];
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = '/static/'+variable_app_name+'/pagename.js';
   document.head.appendChild(script);
</script>

Ich benutze gerne den HTML-Kommentar, weil es eine kurze Änderung ist und es nicht nötig ist, für jede verknüpfte Datei zu replizieren oder darüber nachzudenken.

0
Jools