包括IE11在内的浏览器判断
var D = D || {};
/* 浏览器检测 \x24 */
D.browser = D.browser || function (w, d, n) {
/* userAgent */
var u = n.userAgent.toLowerCase(), browser = {};
browser.u = u;
/* 渲染模式 (标准CSS1Compat)*/
browser.render = d.compatMode;
/* gecko */
if (n.product === 'Gecko') browser.gecko = true;
/* webkit */
if (/ applewebkit\/(\d+\.\d+)/i.test(u)) browser.webkit = RegExp['\x241'];
/* ie */
if (!!w.ActiveXObject || "ActiveXObject" in w) {
browser.ie = /msie (\d+\.\d+)/i.test(u) ? RegExp['\x241'] : d.documentMode;
/* 引擎 */
if (/\s+trident\/?(\d+\.\d+)?/i.test(u)) browser.trident = RegExp['\x241'];
/* 向后兼容模式 */
browser.quirks = (d.compatMode == 'BackCompat');
/* 标准模式 */
browser.norm = d.documentMode;
return browser;
}
/* chrome */
if (window.MessageEvent && !document.getBoxObjectFor) {
if (/chrome\/(\d+\.\d)/i.test(u)) {
browser.chrome = RegExp['\x241'];
return browser;
}
}
/* firefox */
if (browser.gecko && /firefox\/(\d+\.\d+)/i.test(u)) {
browser.firefox = RegExp['\x241'];
return browser;
}
/* safari(chrome 相同) */
if (browser.gecko && /\s+safari\/?(\d+\.\d+)?/i.test(u)) {
browser.safari = RegExp['\x241'];
return browser;
}
/* opera */
if (!!w.opera && /opera(?:\/| )(\d+(?:\.\d+)?)/i.test(u)) {
browser.opera = RegExp['\x241'];
/* 引擎 */
if (/\s+presto\/?(\d+\.\d+)?/i.test(u)) browser.presto = RegExp['\x241'];
return browser;
}
return browser
}(window, document, navigator);
测试:
if (D.browser.ie != null) alert('IE浏览器V' + D.browser.ie);
if (D.browser.firefox != null) alert('火狐浏览器V' + D.browser.firefox);
if (D.browser.chrome != null) alert('chrome浏览器V' + D.browser.chrome);
if (D.browser.safari != null) alert('safari浏览器V' + D.browser.safari);
if (D.browser.opera != null) alert('opera浏览器V' + D.browser.opera);