Frage

<!-- <script type="text/javascript">/*<![CDATA[*/  c-- ;//]]></script> -->

Wenn ich die obige Zeile im -Abschnitt einer einfachen HTML-Seite habe, Firefox 3.5.5 macht die Hinter -> als Text. Wenn ich c-- c- ändern tut es nicht. Irgendwelche Ideen, was ist denn hier los? Ich erhalte eine Artefakt auf meinen Seiten mit diesem aufgrund eines sehr großen Skripts, das knirscht worden ist. Ich kann die Aussage ändern = 1 bis c- und das Problem für jetzt vermeiden, aber .... Ich würde gerne wissen, was das Bit / Byte ist mein ein beißend $$.

War es hilfreich?

Lösung

Dies ist auf Firefox SGML Implementierung (auf der HTML-basierte) Kommentare streng. Dies wird nur dann auftreten, wenn das Dokument im Standardmodus geladen wird (das heißt, es ist ein DOCTYPE).

Der erste <! startet einen Kommentar. Der erste -- tritt in einen Abschnitt, in dem > Zeichen zugelassen sind. Der zweite -- (in Ihrem Skript) verlässt den Abschnitt, in dem > Zeichen erlaubt sind. Die > am Ende </script> endet der Kommentar. Die folgende --> ist daher nicht mehr Teil der den Kommentar und wird als Text dargestellt.

Siehe http://www.howtocreate.co.uk/SGMLComments.html für einen umfassenden Leitfaden für die Ausgabe.

Es ist auch erwähnenswert, dass die HTML 4-Spezifikation sagt, dass der Autoren sollte man zwei oder mehr benachbarten Bindestriche innerhalb Kommentare vermeiden 'und der HTML 5-Spezifikation sagt Kommentare müssen nicht 'enthalten zwei aufeinanderfolgende U + 002D HYPHEN-MINUS-Zeichen (-)'.

Die Lösung, wie Sie gefunden haben, ist nicht -- in der Mitte eines Kommentars enthalten.

Andere Tipps

Technisch sind Sie nicht zu haben doppelten Bindestrich in einem Kommentar in HTML (oder XML) erlaubt. Also selbst wenn Browser „erlauben“, wenn es nicht gültig ist, und sollte ein HTML-Validator fehlschlagen.

Siehe

Das kann ich nicht replizieren. Ist zeigen nicht auf 3.0.1.

scroll top