js判断浏览器具体类型
function getExplorerInfo() {
//判断浏览器版本
var userAgent = navigator.userAgent;
var info;
var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器
var isEdge = userAgent.toLowerCase().indexOf("edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = (userAgent.toLowerCase().indexOf("trident") > -1 && userAgent.indexOf("rv") > -1);
if (/[Ff]irefox(\/\d+\.\d+)/.test(userAgent)) {
tempArray = /([Ff]irefox)\/(\d+\.\d+)/.exec(userAgent);
info = tempArray[1] + tempArray[2];
} else if (isIE) {
var version = "";
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion == 7)
{ version = "IE7"; }
else if (fIEVersion == 8)
{ version = "IE8"; }
else if (fIEVersion == 9)
{ version = "IE9"; }
else if (fIEVersion == 10)
{ version = "IE10"; }
else
{ version = "0" }
info = version;
} else if (isEdge) {
info = "Edge";
} else if (isIE11) {
info = "IE11";
} else if (/[Cc]hrome\/\d+/.test(userAgent)) {
tempArray = /([Cc]hrome)\/(\d+)/.exec(userAgent);
info = tempArray[1] + tempArray[2];
} else if (/[Vv]ersion\/\d+\.\d+\.\d+(\.\d)* *[Ss]afari/.test(userAgent)) {
tempArray = /[Vv]ersion\/(\d+\.\d+\.\d+)(\.\d)* *([Ss]afari)/.exec(userAgent);
info = tempArray[3] + tempArray[1];
} else if (/[Oo]pera.+[Vv]ersion\/\d+\.\d+/.test(userAgent)) {
tempArray = /([Oo]pera).+[Vv]ersion\/(\d+)\.\d+/.exec(userAgent);
info = tempArray[1] + tempArray[2];
} else {
info = "unknown";
}
return info;
}
-
navigator.userAgent:userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。
-
parseFloat() :解析字符串并返回浮点数。此函数确定指定字符串中的 第一个字符 是否为数字。如果是,它会解析字符串直到到达数字的末尾,并将数字作为数字而不是字符串返回。如果第一个字符不能转换为数字,则返回NaN。
-
RegExp:是javascript中的一个内置对象。为正则表达式。
-
RegExp["$1"](或RegExp.$1):是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串。同理,RegExp.$2,RegExp.$3…。
有人会问 RegExp.$1 哪来的值。RegExp对象会在我们调用了正则表达式的方法后,自动将最近一次的结果保存在里面,接着就可以直接在调用完以后直接使用 RegExp.$xx 来使用捕获到的内容。例如例子中的:
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
平常使用时,为了适配ie浏览器,经常只是判断是否为ie浏览器,可以使用代码:js判断浏览器是否为IE