3

ASP.NET フレームワーク上に構築された DotNetNuke CMS Web サイトを実行しています。

ページ スキンに、IE8 以下で実行したくないスクリプトがいくつかあります。私はグーグルで検索してきましたが、このIE条件文を見つけました。

<![if gt IE 8]>

http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspxに従って、このスニピットには、IE8 よりも大きいブラウザーのコードが含まれている必要があります。この条件ステートメントを次のように使用しようとしました。

<![if gt IE 8]>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

ただし、これは機能していないようで、スクリプトはどのブラウザーでも実行されません。この目標を達成するためのより良い方法はありますか? コードに構文エラーはありますか?

ご協力いただきありがとうございます!アレックス

4

3 に答える 3

3

条件付きコメントは次のようになります。

<!--[if IE 8]>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

感嘆符の後に 2 つのダッシュを付けます。

これは実際には HTML コメントであるため、「条件付きコメント」と呼ばれます。

<!-- this is a comment -->.

Internet Explorer (IE9 まで) は例外を作成し、特別な形式でコメントを解析します

<!--[ if ... ]
...
<![endif]-->

ただし、他のブラウザーの場合は単なるコメントであり、無視されます。

于 2013-08-20T22:00:42.047 に答える
1

IE10以降では条件付きコメントがサポートされていないという更新情報を追加したかったので、そのような条件付きコメントを使用すると、

<!--[if gt IE 8]>
<script type="text/javascript"   src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

これにはgt演算子 (質問の投稿ごと) が含まれています。これは、スクリプトが実際には IE9 でのみ表示されることを意味し、事実上、次の記述と同じ機能になります。

<!--[if IE 9]>
<script type="text/javascript"   src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

条件付きサポート記事の終わり: https://msdn.microsoft.com/en-us/library/ie/hh801214%28v=vs.85%29.aspx

条件付きコメント リソース: https://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx

于 2015-03-10T17:42:53.737 に答える
0

IE10+ と IE9- で異なるスクリプトをロードするための情報を追加するだけです。

    <!--[if lt IE 10]>
         <script src="scripts/jquery-1.x.x.min.js" type="text/javascript"></script>
    <!--<![endif]-->
    <!--[if gte IE 10]><!-->
    <script src="jquery-2.x.x.min.js" type="text/javascript"></script>
    <!--<![endif]-->

4 行目のコードに注意してください。これは、5 行目のスクリプト タグがコメントではないことを IE10+ に通知します。

上記の条件ステートメントは、IE9 以前では jquery-1.xx をロードし、IE10+ バージョンでは jquery-2.xx をロードします。

于 2015-05-30T09:33:56.600 に答える