脚本中的双连字符使firefox渲染奇怪

时间:2009-12-04 23:52:44

标签: html firefox comments script-tag

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

当我在&lt; head&gt;中有上述行时在纯HTML页面的一部分,Firefox 3.5.5呈现尾随 - &gt;作为文字。如果我将c--改为c-则不然。有什么想法在这里发生了什么?由于一个非常大的脚本被碾压,我在我的页面上得到了一个工件。我可以将语句更改为c- = 1并暂时避免出现问题但是....我想知道什么位/字节正在咬我的a $$。

3 个答案:

答案 0 :(得分:8)

这是由于Firefox严格执行SGML(HTML所基于的)评论。只有在标准模式下加载文档时才会出现这种情况(即存在DOCTYPE)。

第一个<!开始发表评论。第一个--输入允许>个字符的部分。第二个--(在您的脚本中)保留允许>个字符的部分。 >末尾的</script>会结束评论。因此,以下-->不再是注释的一部分,而是呈现为文本。

有关该问题的详尽指南,请参阅http://www.howtocreate.co.uk/SGMLComments.html

还值得注意的是HTML 4 Specification说'作者应该避免在评论中加入两个或更多相邻的连字符'和HTML 5 Specification说评论不得'包含两个连续的U + 002D HYPHEN-MINUS字符( - )'。

正如您所发现的,解决方案是在评论中不包含--

答案 1 :(得分:1)

从技术上讲,您不允许在HTML(或XML)的注释中使用双连字符。因此,即使浏览器“允许”,如果它无效并且应该使HTML验证器失败。

请参阅Comment section of HTML 4 Specification

答案 2 :(得分:0)

我不能复制这个。不会出现在3.0.1。