0

これは奇妙に聞こえるかもしれませんが、ユーザーがIE 8を使用しているときにファイルを追加する代わりに、他のすべてのブラウザーに通常読み込まれるJSファイルを削除したいと思います。

もう一度。

私は私の中にこれを持っていますhead

<script type="text/javascript" async src="my-script.js"></script>

そして、そのスクリプトをIEを除くすべてのブラウザーで機能させたい(機能していないため、ロードしたくないため)。

私はこのような通常の条件付きタグを知っています

<!--[if lt IE 9]>
<![endif]-->

しかし、それらを逆に使用する方法はないと思うので、私の頭に浮かぶ唯一の解決策はこれです…</ p>

<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') == FALSE) { ?>
      <script type="text/javascript" async src="my-script.js"></script>
<?php } ?>

これはこれを行うための最良の解決策ですか?さらに、実際には9未満のすべてのIEバージョンをテストする必要があります。したがって、JSファイルをIE8、IE7、およびIE6にロードしたくありません。

前もって感謝します。

4

1 に答える 1

10

IE以外のすべて

<!--[if !IE]> -->
<script type="text/javascript" async src="my-script.js"></script>
<!-- <![endif]-->

IE9以降のみ

<!--[if gt IE 8]>
<script type="text/javascript" async src="my-script.js"></script>
<![endif]-->

また

<!--[if gte IE 9]>
<script type="text/javascript" async src="my-script.js"></script>
<![endif]-->

IE9以降およびその他のブラウザー

理論的には、OR演算子を使用できますが、これはNOTIEコメントスタイルではサポートされていません。

<!--[if !(IE)|(gte IE 9)]>
Test
<![endif]-->

次のようにネストされたコメントを使用することもできます。

<!--[if !IE]><![if gte IE 9]>-->
Test
<!--<![endif]><![endif]-->

詳しくは

于 2012-10-01T12:39:05.227 に答える