2017-06-18 7 views
1

は、次のコードを使用してページのセクションがあります:一部のIEの条件付きコメントで余分な<!-->の目的は何ですか?ワードプレスの最新バージョンで

<!--[if lte IE 8]> 
<script type="text/javascript"> 
    document.body.className = document.body.className.replace(/(^|\s)(no-)?customize-support(?=\s|$)/, '') + ' no-customize-support'; 
</script> 
<![endif]--> 
<!--[if gte IE 9]><!--> 
<script type="text/javascript"> 
    (function() { 
     var request, b = document.body, c = 'className', cs = 'customize-support', rcs = new RegExp('(^|\\s+)(no-)?'+cs+'(\\s+|$)'); 

     request = true; 

     b[c] = b[c].replace(rcs, ' '); 

     b[c] += (window.postMessage && request ? ' ' : ' no-') + cs; 
    }()); 
</script> 
<!--<![endif]--> 

は、私の質問はこれです:なぜそれはIE9のコメントは、余分な<!-->を持っているということですが、IE8の一つが」doesnのt?両方のif条件の違いは何ですか?私はデバッグしているa PHP-based HTML Minifierスクリプトを持っています。パーサーを正確にするために、その余分なスニペットの意味を知る必要があります。

+0

これを確認してください。詳細:https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx –

+0

条件付きコメント。 ... –

+0

@RïshïKêshKümar:私は、質問者が条件付きコメントであることを知っているというタイトルに基づいて推測するのは安全だと思います。 – BoltClock

答えて

1

質問内でコードがどのように強調表示されているかを調べます。 IE8部分のような巨大なコメントではなく、IE9部分が通常は強調表示されていることに注意してください。

これはIE以外のブラウザとIE9以降でIE9の部分を表示する方法です。 <!-->ビットはIE9の条件付きコメントを終了させるためのものであり、非IEブラウザは残りのマークアップとともにスクリプト要素を見て、IE9以降で条件を理解し一致させるためにIE9以降を使用します。言い換えれば、<!-->ビットは、IE以外のブラウザだけでなく、条件付きコメントをサポートしないIE10以降にも存在します。 IE9以前の動作は影響を受けません。古いバージョンでは条件付きコメントを通常どおりに尊重します。

それらがなければ、マークアップは次のようになります。IE以外のブラウザでは見えないコードのチャンク全体をレンダリング

<!--[if lte IE 8]> 
<script type="text/javascript"> 
    document.body.className = document.body.className.replace(/(^|\s)(no-)?customize-support(?=\s|$)/, '') + ' no-customize-support'; 
</script> 
<![endif]--> 
<!--[if gte IE 9]> 
<script type="text/javascript"> 
    (function() { 
     var request, b = document.body, c = 'className', cs = 'customize-support', rcs = new RegExp('(^|\\s+)(no-)?'+cs+'(\\s+|$)'); 

     request = true; 

     b[c] = b[c].replace(rcs, ' '); 

     b[c] += (window.postMessage && request ? ' ' : ' no-') + cs; 
    }()); 
</script> 
<![endif]--> 

を...、それは1つの巨大なコメントと見られているため。

+0

稲妻の迅速な対応に感謝ボルト。もう1つ質問:の代わりに - >を使用してセクションを終了させるのはなぜですか?したがって、条件は<! - [if gte IE 9]> - >によって終了します。 – terresquall

+0

@terresquall ...これを読む...詳細:https://www.sitepoint.com/web-foundations/internet-explorer-conditional-comments/ –

+0

@terresquall:通常のテキストとして。 – BoltClock

関連する問題