HTML Commentaar Tag & LT; – & GT; nog steeds relevant rond JavaScript-code?

Is het nog steeds relevant om HTML Commentaar Tag te gebruiken rond JavaScript-code?

Ik bedoel

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

Antwoord 1, Autoriteit 100%

HTML-opmerkingen, dwz. <!-- -->, zijn niet langer nodig. Ze waren bedoeld om browsers toe te staan ​​die de <script>Tag om gracieus te degraderen. Deze browsers, bijv. Netscape 1.x zijn niet langer in het wild gevonden. Dus er is echt geen zin om HTML-opmerkingen in uw scripttags meer te plaatsen.

Als u wilt dat uw HTML is om te valideren als XHTML of XML, wilt u waarschijnlijk een commentaar van CDATA-tag gebruiken.


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

De reden hiervoor is uw <, >, &, "EN 'die deel uitmaken van uw JavaScript-code hoeft niet te worden gecodeerd als &lt;, &gt;, &amp;, &quot;en &apos;respectievelijk.


Antwoord 2, Autoriteit 22%

Niet echt, tenzij je de 20-jarige browsers richten.


Antwoord 3, Autoriteit 13%

Het is beter om JavaScript in het lichaam allemaal samen te vermijden. Het maakt dingen gemakkelijker bij te werken, vermijdt de behoeften aan opmerkingen en dwingt u om te plannen voor niet-javascript-gebruikers en gebruikers met Javascript ingeschakeld.


Antwoord 4, Autoriteit 5%

Niet zoals u het doet, nr.

The & LT;! – wordt hetzelfde behandeld als // in JavaScript, zodat uw code in plaats daarvan als volgt lijkt:

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

.. Het verschil met de jouwe is dat een zeldzame obscure browser die mogelijk niet begrijpt dat de script-tag de opening // naar het scherm zal afdrukken, wat een beetje verslaat het doel om de reactie-tag daar in de eerste plaats te verslaan.

Hier is hier meer informatie hier als u nieuwsgierig bent:
http://www.javascripter.net/faq/comments.htm

Echter in het einde Zelfs super obscure browsers die standaard geen JavaScript ondersteunen (zoals HTMLLAYOUT-browse of Netsurf), weten dat het het beste is om de tekst tussen script-tags, dus nee, het is niet langer op welke manier dan ook niet langer relevant . Alle browsers die je maar kunt geven om het & LT;! – Syntaxis, dus er is geen echte behoefte om zich wellnia te maken om het te verwijderen van wat je al hebt, omdat het geldig is JS, vergeet niet om het de volgende keer niet toe te voegen.


Antwoord 5

Zelfs in moderne browsers kan het nuttig zijn. Ik kwam vandaag nog in dit probleem tegen, juist omdat ik wilde vermijden met Javascript ingebed in mijn HTML.

Ik heb een HTML-pagina die wordt opgegeven op http://host/variable_app_name/pagename, waar variable_app_namekan veel waarden hebben (Y’Know, variabele) . Als het statische bestanden wil openen, moet het een URL gebruiken als http://host/static/variable_app_name/filename, dus ik kan de locatie van het statische bestand niet opgeven zonder eerst naar de locatie van de browser te bekijken Waarde van variable_app_name.

Om te koppelen aan het hoofd Javascript-bestand, doe ik het volgende:

<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>

De bovenstaande code zal exploderen, zelfs in de nieuwste versie van Chrome, omdat de script-tag in het midden van een JavaScript-string wordt beëindigd en de rest van de tekenreeks wordt geïnterpreteerd als HTML, zoals SO:

<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>

Er zijn veel manieren om dit te verhelpen, maar ik gebruik graag een HTML-opmerking.

Met HTML-opmerking:

<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>

De JavaScript-reeks afbreken:

<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>

Maak en voeg de script-tag toe in plaats van document te gebruiken. Schrijf:

<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>

Ik hou ervan om de HTML-opmerking te gebruiken, omdat het een beknopte verandering is en het niet nodig heeft om te repliceren of na te denken voor elk gekoppeld bestand.

Other episodes