Как определить IE 7 и IE 8 с помощью свойств jQuery.support?
Можно ли определить версию браузера с помощью jQuery.support или только эти бла бла бла особенности браузера?
Это полностью возможно с поддержкой:
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/
Я заметил много разных способов сделать это, это НЕ использует $.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.
}
Удачного кодирования!
как объяснено, .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');
}
Я добавил несколько строк 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;
}