0

在以下示例中:

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

JSLint 在最后一行抛出一个错误,说“嵌套注释。”。我似乎无法在 Internet 上找到“修复”此问题的方法。有人有解决方案吗?

4

1 回答 1

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 进行标记验证(我通常会推荐)之外,实际上并没有办法解决这个问题。我会看看我是否能找到一个很好的方法来修复它,然后提交一个补丁。

于 2013-02-07T07:50:34.713 回答