在以下示例中:
<!--[if lt IE 9]>
<script src="./js/lib/modernizr.custom.js"></script>
<![endif]-->
JSLint在最后一行抛出一个错误,说“嵌套注释”。我似乎找不到在互联网上“修复”这种方法的方法。有人有解决方案吗?
答案 0 :(得分:0)
在我看来,这是JSLint中的一个错误(或者可能是一个疏忽)。处理HTML注释的代码如下:
// ...
case '<!--':
length = line;
for (;;) {
i = source_row.indexOf('--');
if (i >= 0) {
break;
}
i = source_row.indexOf('<!'); // This line causes the problem
if (i >= 0) {
stop_at('nested_comment', line, character + i);
}
if (!next_line()) {
stop_at('unclosed_comment', length, c);
}
}
// ...
基本上,当JSLint遇到一个开始注释标记(<!--
)时,它会迭代源代码行,直到遇到结束注释标记(-->
,上面的代码段中未显示)。如果在该迭代期间它在注释的任何行上的任何位置遇到字符串<!
,它将引发您看到的“嵌套注释”错误。
不幸的是,没有办法解决这个问题,没有使用JSLint进行标记验证(我通常会建议这样做)。我将看看是否可以找到一种很好的方法来修复它,然后提交补丁。