コレ知ってた? IE10以降は条件付きコメント「<!-- [if IE] -->〜<![endif]-->」が効きません。

Ads by Google

とあるJavaScriptのライブラリを実装したところ、IE11でエラーが発生したので、問題解決のために「Polyfill.io」を使うことにしました。

Polyfill.io : https://polyfill.io/

IEのときだけ読み込みたかったので、以下のようなコードを記述。

<!--[if IE]>
<script src="https://polyfill.io/v3/polyfill.min.js" crossorigin="anonymous"></script>
<![endif]-->

コレで問題解決。

……と思ったのに、ブラウザチェックをしてみたら polyfill.io が読み込まれていない!?

なぜ!?

調べてみたところ、どうやらこの条件付きコメント(別名「コンディショナルコメント」と呼ぶようです)はIE10以降は廃止になっているとのこと。

マイクロソフトの公式サポートでもアナウンスがありました。
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/hh801214(v=vs.85)

かなり以前から使えなくなっていたんですね。
知りませんでした。

条件付きコメントが使えないので、PHPでブラウザ判定して処理を分岐する方法を掲載しておきましょう。

<?php
$ua = getenv('HTTP_USER_AGENT');

if (strstr($ua, 'Edge')) { ?>
	Microsoft Edge のときの処理を記述 
<?php } elseif (strstr($ua, 'Trident') || strstr($ua, 'MSIE')) { ?>
	Internet Explorer のときの処理を記述
<?php } ?>

とりあえずはコレで解決です。
ホント厄介ですねぇ。IEは。

こちらの記事もいかがですか?

アナタにオススメ!
同じカテゴリーの他の記事です。

Ads by Google