繁体   English   中英

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

[英]Why do I need to comment the <script> tag in HTML?

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

<!--
...
-->

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

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

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

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

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

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

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

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

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

如果您的页面由卫生解析器处理,现在仍然是一个问题,该解析器仅通过将<script>标记重写为<xscriptx> 如果你留在评论标签中,那么如果脚本标签被消毒了,那么至少你的javascript仍将被评论标签隐藏。 如果省略注释,代码将可见。

卫生解析器的一个示例是Google Translate,Google Cache或Proxomitron。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM