0

サイトに実装している Extjs 要素に問題があり、これらの問題を修正するために IE10 固有のスタイリングを実行する必要があります。IE10 では、IE のバージョンに応じて別のクラスが追加された別の html タグを条件付きで指定できる古い IE スタイルのコメントがサポートされなくなったことを理解しています。したがって、この場合、jQuery を使用して IE10 クラスに HTML タグを追加する必要がありますが、これは最善の解決策ではありませんが、ユーザーは Javascript を有効にする必要があるため、現時点では最善の選択肢です。

私は現在、次のコードセグメントを使用してこれを達成しようとしています:

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
    <script type="text/javascript">
      if ($.browser.msie && $.browser.version == 10) {
         $("html").addClass("ie10");
    }
    </script>

ただし、開発者モードで見るか、IE10 でページのソースを表示すると、HTML タグに何も追加されません。次に、Firebug を使用して (IE 開発者ツールがひどいため)、使用していたスクリプトに問題がないかどうかを確認したところ、コンソールに次のメッセージが表示されました。

  TypeError: $.browser is undefined
     [Break On This Error]  

      if ($.browser.msie && $.browser.version == 10) {

私はブラウザーの検出に Javascript を使用することはめったにないので、このスクリプトを Web から借用したことを認めます。コメントはすべて機能することを示唆していましたが、ご覧のとおり、明らかに機能していません。

これが機能するようにこれをどのように適応させることができるか、または実際に私の CSS で IE10 をターゲットにするために使用できる代替手段について誰かアイデアを持っていますか?

4

5 に答える 5

3

条件付きコンパイルを使用して IE10 のみを取得できます。これは、jQuery やなりすましの可能性があるものに依存しないため (afaik)、良い方法です。

IE8、IE9、IE10、Chrome でテストしたところ、すべて期待どおりに動作しました。

使用法:

if(Function('/*@cc_on return document.documentMode===10@*/')()){ $("html").addClass("ie10"); }

続きを読む: https://stackoverflow.com/a/13971998/1711038

于 2013-03-28T10:52:13.950 に答える
0

IE のブラウザ検出のみに関心がある場合は、次のアプローチを使用します。正しい ID を渡すことで、追加する DIV を変更できます。

    <!--[if IE 10]>
    <script  type="text/javascript">
        $(document).ready(function() {
            $("#ieFix").addClass("ie10");
        });
    </script>
<![endif]-->
于 2013-06-30T09:59:52.807 に答える
0

jQuery の$.browser関数は、jQuery v1.3 から非推奨になりました。

さらに重要なことは、バージョン 1.9 で、jQuery はこれを含む多くの古い非推奨機能を削除したことです。それがあなたのために働いていない理由です。

古い廃止された機能を使用する必要がある場合、jQuery 開発者は、すべての古い機能を復活させる別の移行ライブラリを提供します。しかし、これは短期的な一時しのぎとしての使用のみを意図したものです。推奨される解決策は、古い機能を使用しないようにコードを修正することです。

jQuery が廃止された理由$.browserは、ブラウザーの検出が不適切な方法と見なされているためです。ほぼすべての場合、問題を解決するためのより優れた、より標準に準拠した方法があり、ブラウザが新しいほど、そうなる可能性が高くなります-間違いなく正当な理由がありますIE6 などでは引き続きブラウザー検出を使用しますが、IE10 はかなりまともなブラウザーであり、克服できない問題が本当に発生した場合は驚くでしょう。

IE10 を検出する方法はいくつかあります (既に 1 つの回答を受け入れていることに注意してください)。そうしないと、IE11 がリリースされたときに、この演習全体をもう一度行うことになるからです。

于 2013-03-28T11:08:26.477 に答える