0

次の例では:

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

JSLint は、最後の行で「ネストされたコメント」というエラーをスローします。これをインターネット上で「修正」する方法が見つからないようです。誰にも解決策がありますか?

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 を使用しない以外に、これを回避する方法は実際にはありません (いずれにせよ、通常は JSLint をお勧めします)。それを修正する良い方法を見つけられるかどうかを確認してから、パッチを送信します。

于 2013-02-07T07:50:34.713 に答える