Ich habe eine Funktion wie diese (unten), die einen HTML-Code-Block in eine HTML-Seite einfügt:
%Vor% Dies funktioniert gut für HTML-Code, der ein img
-Tag enthält.
Wenn der HTML-Code <script>
Blöcke enthält, werden diese nicht gerendert. Darüber hinaus enthalten die Skriptblöcke JavaScript, das von HTML-Kommentaren umgeben ist. Zum Beispiel:
Diese Skriptblöcke, die HTML-Kommentare enthalten, werden nach dem Einfügen nicht dargestellt. Ich habe Kontrolle über den Code, der eingefügt wird, und ich habe es ohne die HTML-Kommentare getestet, und sie wurden erfolgreich gerendert.
Ich verstehe, dass HTML-Kommentare wie diese in früheren Versionen von Netscape verwendet wurden, um Probleme mit der Inkompatibilität des Browsers mit Javascript zu vermeiden.
Gibt es einen anderen Grund (oder einen guten Grund), Kommentare im HTML-Stil in einen JavaScript-Block aufzunehmen?
Bearbeiten
Ich habe mich vertippt. Der abschließende Kommentar lautet: //-->
.
Tatsächlich ist nur <!--
ein gültiges Javascript. Um den HTML-Kommentar in Javascript zu beenden, müssen Sie //-->
verwenden.
Heutzutage ist es nicht mehr nötig, die HTML-Kommentare in Javascript zu verwenden. Browser, die so alt sind, dass sie das <script>
-Tag nicht verstehen, sind höchst unwahrscheinlich in der Lage, auf einer "modernen" Website viel von etwas zu rendern, und Sie sollten nicht auf Benutzer eingehen müssen, die buchstäblich auf einem steinzeitlichen Browser arbeiten .
Wenn Sie jedoch beabsichtigen, Ihren HTML-Code in ein xml-Dokument einzubinden und / oder x-html zu schreiben, dann müssen Sie die xml-Dateien <![CDATA[
und ]]>
als verschiedene Javascript-Operatoren verwenden ( &
, <
und >
im Besonderen) führt zu XML-Parse-Fehlern ohne die Gehäuse.
Nein, es gibt keinen Grund, sie einzubeziehen. Ich lasse diese Kommentare regelmäßig weg und habe keine Probleme mit modernen Browsern.
Dies ist eine nicht standardmäßige Funktion, die Browser und JavaScript-Engines immer implementiert haben. Heutzutage kann es nicht von der Web-Plattform entfernt werden, da dies die Abwärtskompatibilität zerstören würde. Es ist detailliert in der JavaScript / Web ECMAScript-Spezifikation :
%Vor%
<!--
muss als Anfang vonSingleLineComment
behandelt werden - entspricht//
.%Vor%
-->
am Anfang einer Zeile, optional gefolgt von Leerzeichen oderMultiLineComment
s, muss alsSingleLineComment
behandelt werden - entspricht//
.
<script>
innerhalb von Zeichenketten, die über innerHTML
gesetzt wurden, läuft nie (hauptsächlich weil es nie in IE und dann auf Seiten davon kam, also wenn andere Browser die innerHTML
Implementierung rückentwickelten, mussten sie das auch tun). Die HTML-Kommentare dort sind ein Ablenkungsmanöver.
Wenn Sie <script>
ausführen möchten, müssen Sie eine andere Methode zum Einfügen der Knoten verwenden (z. B. createContextualFragment
).
HTML-Kommentare in Skriptblöcken sind seit vielen Jahren nicht mehr nötig. Sie auszulassen, wird keine Probleme verursachen.
Referenzen: Ссылка
Tags und Links javascript html