0

ブラウザが IE か、jquery を使用していないかを確認したい。ブラウザがIEの場合、いくつかのクラスを変更します。

$(document).ready(function () {
    <![if !IE]>
   ---------------
    <![endif]>
    });

しかし、それは私のニーズを返してくれませんでした。

4

8 に答える 8

3

実際の問題が何であるかについて十分に特定していませんが、IE (の一部のバージョン) に欠けている機能に対処しようとしていると思います。

私が言いたい主なことは、問題を解決するためのあなたのアプローチは根本的に間違っているということです.

For a start, the capabilities of IE (as for any other browser) vary wildly between the various versions. IE10 is actually pretty good, and supports most of the modern browser features you might want to use. And IE11 will be released in the near future with even better support. You might have a problem with IE8 or earlier, but most well-written code ought to work with IE10 without any problems. Therefore, a blanket check for IE without checking the version is almost certainly a bad idea.

Secondly, even if you are going to do an IE check, <![if !IE]> is wrong because IE has dropped support for this since IE10. The reason they've dropped it is specifically to discourage the bad practice of browser detection.

There are various other ways of detecting IE, but they're all bad practice for the same reason: detecting the browser and making your site work differently for different browsers has a whole load of issues with it. It's a big topic, so I suggest reading here for more info.

Finally, what to do instead? The answer is feature detection.

In short:

  1. Work out what feature it is that you need that isn't supported in older browsers
  2. Write a script that detects whether the user's browser supports that feature.
  3. Write your code to cope with a negative answer from that check.
    (this may include 'polyfill' scripts that add the missing features to the browser, or some kind of alternative functionality for unsupported browsers)

この手法を使用すると、ブラウザの機能に関係なく、すべてのブラウザを処理する方法でサイトを作成できます。

機能検出のために試す必要がある優れたライブラリはModernizrです。

ps - IE で特定の問題が発生している場合は、それについて別の質問をする必要があります。ここにいる人たちがあなたがそれを機能させるのを手伝ってくれる可能性は十分にあります。

于 2013-06-03T10:35:16.517 に答える
0

ブラウザがIEかどうかは条件付きコメントで確認できると思いますが…こちらのブログを読んでみてください。

 <!--[if IE]> 
     This content is ignored in IE10 and other browsers.    
     In older versions of IE it renders as part of the page.    
<![endif]-->

====================================================================
    <!--[if lt IE 9]>
       <script src="jquery-1.9.1.js"></script>
    <![endif]-->
       //There is difference in the commenting style which jQuery team has used!
    <!--[if gte IE 9]><!-->
        <script src="jquery-2.0.0b2.js"></script>
    <!--<![endif]-->
于 2013-06-03T11:48:26.653 に答える
0

jQuery.browserjQuery 1.9 で廃止されました。

jQuery Migrate を試す必要があります - https://github.com/jquery/jquery-migrate

同様の質問 -ブラウザ検出 jQuery 1.9 の最も簡単で軽量な代替品?

于 2013-06-03T10:04:24.383 に答える