为什么我需要在HTML中注释<script>标记?

jon*_*hua 16 html javascript tags comments

我见过的大多数例子都在html页面中包含脚本

<!--
...
-->
Run Code Online (Sandbox Code Playgroud)

我试过写它没有评论标签,似乎没有任何区别.为什么使用注释标签以及它提供的功能是什么?

And*_*yle 23

这不再是必要的了.这只是一种向后兼容的黑客攻击 - 当脚本首次插入静态HTML页面时,大多数浏览器都无法支持它们.如果没有注释,它们将忽略<script>标记的语义(它们不理解),然后将脚本源发布到页面上.

具有讽刺意味的是,解决方案本身就是一个黑客攻击--AFAIK,HTML规范的任何部分都没有说明在注释内部应该解析脚本标记.所有浏览器选择这一点的事实似乎比其他任何事情更巧合.当然,使用XHTML,注释是注释,因此完全一致的浏览器必须忽略您的脚本.

所以基本上,除非你想支持真的,真的很老的浏览器(在突破一些新的成本),它不再需要做到这一点.

  • 我记得这个技巧是`// <! - `和`// - >`,即你将HTML注释标签写成JavaScript注释,这样它们就会被脚本引擎忽略.当然,这意味着旧版浏览器可能会从open注释标记中发出`//`. (7认同)

Rup*_*Rup 8

真正老的浏览器不理解<script>标签可能会认为它是一个它不理解的格式化标签.他们会通过在页面中内嵌呈现标记(脚本)的内容而优雅地失败.

通过HTML注释掉脚本,这些浏览器将忽略内容而不是呈现它.

在实践中,我怀疑这些浏览器是否仍在使用中,如果没有现在的评论,你可能会离开.


Rya*_* Li 7

它适用于上个世纪使用的一些旧浏览器.

您今天不再需要它们,但如果您编写XHTML ,使用CDATA被认为是一种很好的做法.