web-dev-qa-db-ja.com

jQuery.supportを使用してIE7およびIE8を検出する方法

jQuery.support プロパティを使用してIE 7およびIE 8を検出するにはどうすればよいですか?

JQuery.supportを使用してブラウザのバージョンを検出することはできますか?

25

これは完全にサポートで可能です:

if (!$.support.leadingWhitespace) {
    //IE7 and 8 stuff
}

また、これはIE 6を検出します。ただし、このコードブロックを実行するためにIE 6を望まない場合は、除外する別のフラグが必要です。

ブラウザを使用しない正当な理由は、廃止された機能であり、バージョン1.9のプラグインでは削除される可能性が高いことです。 ( jQueryでIE7を検出する方法? )への回答に関するコメントを参照してください)

「このプロパティの使用はお勧めしません。代わりに機能検出を使用してください(jQuery.supportを参照)。jQuery.browserは、jQueryの将来のリリースでプラグインに移動される可能性があります」 http://api.jquery。 com/jQuery.browser /

これが実際の例です: http://jsfiddle.net/AGtG8/16/

41
jas
if (jQuery.support.leadingWhitespace == false){

... code for IE7-IE8 ...

}
else {
... 
}
8
piciu

IE10も含まれているため、次のことに注意してください。

if ($.browser.msie && $.browser.version.substr(0,1)<7) {
//<IE7
}

より良い使用:

if ($.browser.msie && parseInt($.browser.version,10)<7) {
//<IE7
}
5
Bob Hamblok

私が見つけた1つのトリックは、HTMLにコンディショナルタグを追加することです

<!--[if lt IE 7]><body class="ie ie6 lte9 lte8 lte7"><![endif]-->
<!--[if IE 7]><body class="ie ie7 lte9 lte8 lte7"><![endif]-->
<!--[if IE 8]><body class="ie ie8 lte9 lte8"><![endif]-->
<!--[if IE 9]><body class="ie ie9 lte9"><![endif]-->
<!--[if !IE]><!--><body class="not-ie"><!--<![endif]-->

次に、次のようにJQueryを使用します。

$('body.ie7')

また、IE specific

body.ie6{ margin: 0; }

それがあなたにとって良いかどうかはわかりませんが、とにかく、それは選択肢です。

jQuery.supportは、ブラウザの機能を検出するためのものです。ブラウザのバージョンを検出するには、jQuery.browserを使用します。

if ($.browser.msie && $.browser.version.substr(0,1)<7) {
//IE7

}

更新:$ .browserは非推奨になりました。使用しないでください。

2
AndreyM

説明したように、.supportは機能検出用です。ブラウザを検出する場合は、 .browser

 var ua = $.browser;
 if ( ua.msie && ua.version.slice(0,1) == "8" ) {
   alert('IE 8');
 } else if ( ua.msie && ua.version.slice(0,1) == "7" ) {
   alert('IE 7');
 } else {
   alert('something else');
 }
2
oezi

これにはさまざまな方法がありますが、これは$.supportこれは非常にうまく機能することがわかりました。また、ちょうどメモとして、jqueryは、jquery 2.0のIE 6,7,8のサポートを削除することを発表しました( http://blog.jquery.com/2012/06/28/jquery-core-version-1-9-and-beyond / )。

var msVersion = navigator.userAgent.match(/MSIE ([0-9]{1,}[\.0-9]{0,})/),
      msie = !!msVersion,
      ie6 = msie && parseFloat(msVersion[1]) < 7;

  // Help prevent flashes of unstyled content
  if (!ie6) {
    //Do Something here.
  }

ハッピーコーディング!

1

これを使用して、ブラウザが8以下かどうかを確認します

iEバージョンを変更するには、単に8を別のIEバージョンに更新します

if (jQuery.browser.msie && jQuery.browser.version.substr(0,1) <= 8 ) {   
    runIECode();
} else {
    runOther();
}
0
Dan
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { 
    var ieversion = new Number(RegExp.$1);
    alert(ieversion < 9);
}
0
madhi

再び機能させるために、Javascriptを数行追加しました。

jQuery.uaMatch = function (ua) {
    ua = ua.toLowerCase();

    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
            /(webkit)[ \/]([\w.]+)/.exec(ua) ||
            /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
            /(msie) ([\w.]+)/.exec(ua) ||
            ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
            [];

    return {
        browser: match[ 1 ] || "",
        version: match[ 2 ] || "0"
    };
};

if (!jQuery.browser) {
    matched = jQuery.uaMatch(navigator.userAgent);
    browser = {};

    if (matched.browser) {
        browser[ matched.browser ] = true;
        browser.version = matched.version;
    }

    // Chrome is Webkit, but Webkit is also Safari.
    if (browser.chrome) {
        browser.webkit = true;
    } else if (browser.webkit) {
        browser.safari = true;
    }

    jQuery.browser = browser;
}
0
coorasse