web-dev-qa-db-ja.com

jQueryでInternet Explorer 6以下を検出する

私はjqueryが初めてで、疑問に思っていました。ブラウザがInternet Explorer 6以下であるかどうかを検出する簡単な方法ですか?

45
ine

これと同じくらい簡単:

if($.browser.msie && $.browser.version=="6.0") alert("Im the annoying IE6");

更新

$。browserjQuery 1.9から削除 であることに注意してください

JQuery 1.9(または他の非推奨の関数)で$ .browserを使用する必要がある場合は、jQuery-migrate( https://github.com/jquery/jquery-migrate/ - http://code.jquery.com/jquery-migrate-1.2.1.js

102
Aamir Afridi

IEを直接求めることもできます。

<!--[if lte IE 6]>
<script type="text/javascript">
  var isRunningIE6OrBelow = true;
</script>
<![endif]-->
50
Alister Bulman

jQueryは、「ブラウザ」ではなく機能をチェックします。つまり、 jQuery.support メソッドを使用して、ユーザーのブラウザが何を実行できるかを検出できます。

非推奨のメソッド(使用しないでください)

  • $ .browser
  • $ .browser.version
  • $ .boxModel

http://docs.jquery.com/Utilities/jQuery.support は、どのブラウザがどの機能をサポートしているかの概要を示します。そのデータを取得して、使用されているブラウザーがターゲットブラウザーであるかどうかを判断する条件付きチェックをいくつか開発します。

16
Sampson
if ($.browser.msie && parseInt($.browser.version, 10) <= 6) {
  alert("I'm not dead yet!"); 
}

-更新

$。browserjQuery 1.9から削除 であることに注意してください

8

検出する非常に良い方法IEは:

if ('v'=='\v') {
   welcome to IE )) 
}

残念ながら、そのバージョンを認識することはできませんが、必ずしもネセカリーではありません。

6
Roman

ActiveXObjectが存在し、XMLHttpRequestが存在しない場合、IE6です。

/* IE6 Check */
(!!window.ActiveXObject && !window.XMLHttpRequest) ? true : false;

IE7では、次のようになります。

(!!window.ActiveXObject && !!window.XMLHttpRequest) ? true: false;

参考文献

5
Paul Sweatte

ブラウザのバージョンをよく確認します。 .supportメソッドは優れていますが、オーバーレイがあるときに選択を非表示にする必要がある場合には、実際には役に立ちません。 「サポートの選択はウィンドウ化されたコントロール」はありません。ブラウザーのバージョンを確認する必要があるだけなので、できる限り.supportメソッドに向かってerrと言い、必要に応じて.browserを使用します。

3
Paul Deen

また、もう1つの良い点は、JQueryを使用すると、バージョンについて心配する必要がないことです。

ただし、jqueryを使用してIE6 cssレンダリングのバグを修正している場合、これは役に立ちません。

3
user106427

人々に$ .browser.msie && /6.0/.test(navigator.userAgent)が信頼できないことを知らせるために、私は自分のマシンで壊れるJQuery bgiframeの問題に対する答えを探してこの質問に来ました。 navigator.userAgent文字列に「Media Center PC 6.0」があります。 $ browser.versionテストを使用するようにソースを編集しました。

ブラウザーのエコシステムのugい状態に対処するために必要な場合があるため、これらのブラウザーテストを非推奨にするJQueryの愚かさ。

1

私はいつもこのソリューションを使用しました

http://sinfinity.pl/blog/2012/02/12/detect-internet-Explorer-and-browser-version-in-jquery/

1
mihau

http://docs.jquery.com/Utilities/jQuery.browser.version はどのように

編集済み:ダグラスからの修正されたリンク

http://api.jquery.com/jQuery.browser/#jQuery.browser.version

つまり、最新の1.3ではなく古いバージョンを使用している場合...

また、もう1つの良い点は、JQueryを使用すると、バージョンについて心配する必要がないことです。 JQueryは機能のテストを実行し、すべての不自然な処理を行います。バージョンとプラットフォームの心配はかなり1999

0
MrChrister

これを試してください:

 jQuery.each(jQuery.browser, function(i, val) {
  $("<div>" + i + " : <span>" + val + "</span>")
            .appendTo(document.body);
});

さらに情報が必要な場合は、これを参照してください。

http://docs.jquery.com/Utilities/jQuery.browser

0
Goku

「jQuery.browserが削除されることはほとんどありませんが、jQuery.supportを使用するためのあらゆる努力と適切な機能検出を行う必要があります。」

だから私は先に行くとそれを使用すると言います。ユーザーエージェントスニッフィングメソッドをまだ使用するスクリプトとの後方互換性を維持する必要があります。

0
user192502