来自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]-->
答案 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解析器的结束块中,如-- >