html解析包含javascript的注释

时间:2014-03-16 05:13:54

标签: javascript html

来自SGML / HTML标准:

“简而言之,评论开头和结尾的双短划线不会开始和结束评论。双短划线表示允许评论包含的内容发生变化。第一个 - 开始评论,并告诉浏览器允许评论包含>字符而不结束评论。第二个 - 不结束评论。它告诉浏览器如果遇到>字符,则必须结束评论。另一个 - 添加,然后它返回允许>字符。 “

我的问题是:

假设某些javascript在html评论中,我将如何处理'>'中的人物 脚本..

例如

 <!-- 
 <script>
 for(x=10;x>1;x--) 
  { 
  if(x>5) {}
  }
 </script>
 -->

不会x--将html解析器设置为考虑下一个'&gt;'作为评论的结尾, 在这种情况下,它将是(x> 5)?

中的大于号

一个让我更加困惑的例子:

          <!--[if lt IE 9]>
          <!--<script type="text/javascript" src="/respond.js" >
          var i=10;
          if(i-->5) {}
          </script>-->
          <![endif]-->

1 个答案:

答案 0 :(得分:0)

根据MDN Documentation on correct use of comments

[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

因此,-- >不会在XML中结束注释块,而是以HTML格式结束。

来自同一来源的示例

有效评论

<!-- valid xml/xhtml comment -->

评论无效

<!-- invalid -- xml comment -->
<!-- invalid xml comment --->
<!-- invalid xml comment -- >

现在,你的问题

  

不会让x--将html解析器设置为考虑下一个&#39;&gt;&#39;作为评论的结尾

答案:不,html parses仅将-->视为评论的结尾,而不是任何其他组合。只有空格可以出现在HTML解析器的结束块中,如-- >