如何摆脱“嵌套评论”。 JSLint抛出的错误?

时间:2013-02-07 03:58:53

标签: internet-explorer conditional jslint

在以下示例中:

    <!--[if lt IE 9]>
    <script src="./js/lib/modernizr.custom.js"></script>
    <![endif]-->

JSLint在最后一行抛出一个错误,说“嵌套注释”。我似乎找不到在互联网上“修复”这种方法的方法。有人有解决方案吗?

1 个答案:

答案 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进行标记验证(我通常会建议这样做)。我将看看是否可以找到一种很好的方法来修复它,然后提交补丁。