6

IE 9 より前のバージョンを除くすべてのブラウザーで実行したいスクリプトがあります。明らかに、この条件ステートメントは IE で機能します。

<!--[if gt IE 8]>
    JavaScript stuff here
<![endif]-->

しかし、そのコードは IE9 以外のブラウザでは実行されません。

複数の条件ステートメントを一緒に使用する方法はありますか?

<!--[if gt IE 8 OR !IE]>
    JavaScript stuff here
<![endif]-->
4

4 に答える 4

4

次のような条件付きコメントを使用します。

<!--[if gte IE 9]><!-->
    <script></script>
<!--<![endif]-->

条件付きコメントには 2 つのタイプがあります。ブロック全体がすべてのブラウザーからコメント アウトされているもの (上記の最初のバージョン) と、「条件」のみがコメント アウトされているもの (このバージョンはこちら) です。

そのため、すべての非 IE ブラウザー<script></script>はコメントの外側を見て、v9 より前の IE はコメントを解析し、その HTML を無視することを知っています。

于 2012-08-14T09:16:59.313 に答える
2

[if (gt IE 5)&(lt IE 7)]論理演算子を使用して、 or[if (IE 6)|(IE 7)]のような条件ステートメントを「結合」することができます

条件付きステートメントを使用してコンテンツをコメントアウトするのはややこしいように見えますが、なぜ多くの回答がそれを示唆しているのか疑問に思います。これは私がよく知っている表記法であり、quirksmode の例が他にもあります:

<!--[if IE]>
According to the conditional comment this is IE<br />
<![endif]-->
<!--[if !IE]> -->
According to the conditional comment this is not IE<br />
<!-- <![endif]-->

この構文は、MS 仕様で推奨されており、カスタム バージョン ベクター検出などの機能が追加されています。ただし、すべての意図と目的のために、IE10 は非 IE ブラウザーとして検出され、IE ブラウザーとして参照する必要があることに注意してください (最初に条件ステートメントで対処する必要があるような重大な癖がなくなることを願っています)。

于 2012-08-14T10:00:26.220 に答える
2

条件付きコメントではなく、機能検出を使用することをお勧めします。たとえば、ここにある Microsoft のドキュメントによると、 Internet Explorer 10 はスクリプト内の次のような条件付きコメントを完全に無視します。

  <!--[if IE]>
    This content is ignored in IE10.
  <![endif]-->

以下を追加することで、これにパッチを適用できます。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

しかし、これは長期的な解決策ではありません。

于 2012-08-14T09:27:42.663 に答える
0

このページが役立つと思います:

http://www.cssplay.co.uk/menu/conditional.html

具体的には:

I have found that the following code will allow you to target non-IE browsers

<!--[if !IE]><!-->
<h1>You are NOT using Internet Explorer</h1>
<!--<![endif]-->

..and finally to target non-IE and a specific IE browser
(or any combinations using lte lt or gt gte).

<!--[if IE 6]><!-->
<h1>You are using EITHER Internet Explorer version 6<br />
OR a non-IE browser</h1>
<!--<![endif]-->
<h1>You are using
<!--[if IE 6]>IE6 and not <!-->
a non-IE browser
<!--<![endif]--></h1>
于 2012-08-14T09:11:59.507 に答える