我见过的大多数示例都在html页面中的脚本被
括起来<!--
...
-->
我尝试在没有评论标签的情况下编写它,似乎没有任何区别。为什么使用评论标签以及它提供的功能是什么?
答案 0 :(得分:23)
不再需要了。这只是一种向后兼容的黑客攻击 - 当脚本首次插入静态HTML页面时,大多数浏览器都无法支持它们。如果没有这些注释,他们会忽略<script>
标签的语义(他们不理解),然后将脚本源发布到页面上。
具有讽刺意味的是,解决方案本身就是一个黑客攻击--AFAIK,HTML规范的任何部分都没有说应该在注释内部解析脚本标记。所有浏览器选择这一点的事实似乎比其他任何事情更巧合。当然使用XHTML,注释是注释,因此完全符合浏览器 忽略您的脚本。
所以基本上,除非你想真正支持真正旧浏览器(以破坏一些新浏览器为代价),否则不再需要这样做。
答案 1 :(得分:8)
不了解<script>
标记的旧版浏览器可能会认为它是一个它不理解的格式化标记。他们会通过在页面中内嵌呈现标记(脚本)的内容而优雅地失败。
通过HTML注释掉脚本,这些浏览器将忽略内容而不是渲染它。
在实践中,我怀疑这些浏览器是否仍在使用中,如果没有现在的评论,你可能会离开。
答案 2 :(得分:7)
这适用于上个世纪使用的一些旧浏览器。
您今天不再需要它们,但如果您编写XHTML,则使用CDATA被视为良好做法。
答案 3 :(得分:0)
如果您的页面由卫生解析器处理,现在仍然是一个问题,该解析器仅通过将<script>
标记重写为<xscriptx>
来进行清理。如果你留在评论标签中,那么如果脚本标签被消毒了,那么至少你的javascript仍将被评论标签隐藏。如果您遗漏评论,代码将会显示。
卫生解析器的一个示例是Google Translate,Google Cache或Proxomitron。