所以我有一个网站,在那里有很多地方html注释被写成
我注意到当你写:
<div>hello</div>
<!-- COMMENT --------------- //-->
<div>hello2</div>
只有hello2显示。如果你没有在末尾键入破折号:
<div>hello3</div>
<!-- COMMENT --------------- -->
<div>hello4</div>
则打印hello3和hello4。现在,有没有一种方法可以让我在不浏览整个网站和更改所有评论的情况下完成这项工作?顺便说一句,它在所有浏览器中都显示良好,包括firefox4甚至IE。这个问题只发生在FF 3.6 上
注释由序列--
开始和结束。
<!-- COMMENT --------------- //-->
表示:
- 开始注释
- 空间
- 评论
- 空间
- 结束注释
- 开始注释
- 结束注释
- 开始注释
- 结束注释
- 开始注释
- 结束注释
- 短划线-空格-斜线-斜线(在注释外!)
- 开始注释
HTML规范中说:是有原因的
一个常见的错误是在注释中包含一个连字符字符串("---")。作者应避免在注释中放置两个或多个相邻的连字符。
现在,有没有一种方法可以让我在不浏览整个网站和更改所有评论的情况下完成这项工作?
没有。
顺便说一句,它在所有浏览器中都显示良好,包括firefox4甚至IE。这个问题只发生在FF 3.6 上
太多糟糕的作者依赖于一些浏览器错误处理评论的错误,这意味着浏览器供应商已经放弃了正确实现评论的尝试。
Mozilla直到Firefox 3.6之后才放弃
在HTML注释中使用破折号会导致不可预测的行为。看见https://bugzilla.mozilla.org/show_bug.cgi?id=2749有关HTML注释解析差异的更多信息。(来源http://www.hixie.ch/tests/evil/mixed/comments-evil.html是一个很好的例子)
我建议使用一些服务器脚本或Find&替换功能在您的文本编辑器中,用等号或其他符号替换注释中的短划线。