次の例では:
<!--[if lt IE 9]>
<script src="./js/lib/modernizr.custom.js"></script>
<![endif]-->
JSLint は、最後の行で「ネストされたコメント」というエラーをスローします。これをインターネット上で「修正」する方法が見つからないようです。誰にも解決策がありますか?
次の例では:
<!--[if lt IE 9]>
<script src="./js/lib/modernizr.custom.js"></script>
<![endif]-->
JSLint は、最後の行で「ネストされたコメント」というエラーをスローします。これをインターネット上で「修正」する方法が見つからないようです。誰にも解決策がありますか?
これは、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 を使用しない以外に、これを回避する方法は実際にはありません (いずれにせよ、通常は JSLint をお勧めします)。それを修正する良い方法を見つけられるかどうかを確認してから、パッチを送信します。