Как обнаружить IE7 и IE8 с помощью jQuery.support

Как определить IE 7 и IE 8 с помощью свойств jQuery.support?

Можно ли определить версию браузера с помощью jQuery.support или только эти бла бла бла особенности браузера?

25
задан Mithun Sreedharan 17 January 2012 в 06:15
поделиться

4 ответа

Это полностью возможно с поддержкой:

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

Это также обнаруживает IE 6, однако, если вы не хотите, чтобы IE 6 запускал этот блок кода, вам понадобится другой флаг, чтобы исключить его

Хорошая причина не использовать браузер - это устаревшая функция, которая, вероятно, будет удалена в плагин с версией 1.9. (См. Комментарии к ответу на Как обнаружить IE7 с помощью jQuery? )

«Мы не рекомендуем использовать это свойство; попробуйте вместо этого использовать функцию обнаружения функций (см. JQuery.support). jQuery.browser может быть перемещен в плагин в будущем выпуске jQuery " http://api.jquery.com/jQuery.browser/

вот рабочий пример: http://jsfiddle.net/AGtG8/16/

41
ответ дан 28 November 2019 в 18:26
поделиться

Я заметил много разных способов сделать это, это НЕ использует $.support, хотя я обнаружил, что это работает очень хорошо. Также, как примечание, jquery только что объявил, что они будут удалять любую поддержку IE 6,7,8 в jquery 2.0 ( http://blog.jquery.com/2012/06/28/jquery-core -версия-1-9-и-за / ).

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
ответ дан 28 November 2019 в 18:26
поделиться

как объяснено, .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
ответ дан 28 November 2019 в 18:26
поделиться

Я добавил несколько строк 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
ответ дан 28 November 2019 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: