2013-02-07 40 views

回答

0

这对我来说似乎是JSLint中的一个bug(或者可能有点疏忽)。用于处理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进行标记验证(我通常会推荐它)。我会看看我能否找到修复它然后提交补丁的好方法。