JS如何判断浏览器类型和详细区分IE各版本浏览器
程序员文章站
2023-12-10 13:30:52
今天用到js判断浏览器类型,于是就系统整理了一下,便于后期使用。
/*
* 描述:判断浏览器信息
* 编写:littleqiang_w...
今天用到js判断浏览器类型,于是就系统整理了一下,便于后期使用。
/* * 描述:判断浏览器信息 * 编写:littleqiang_w * 日期:2016.1.5 * 版本:v1.1 */ //判断当前浏览类型 function browsertype() { var useragent = navigator.useragent; //取得浏览器的useragent字符串 var isopera = useragent.indexof("opera") > -1; //判断是否opera浏览器 var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1 && !isopera; //判断是否ie浏览器 var isedge = useragent.indexof("windows nt 6.1; trident/7.0;") > -1 && !isie; //判断是否ie的edge浏览器 var isff = useragent.indexof("firefox") > -1; //判断是否firefox浏览器 var issafari = useragent.indexof("safari") > -1 && useragent.indexof("chrome") == -1; //判断是否safari浏览器 var ischrome = useragent.indexof("chrome") > -1 && useragent.indexof("safari") > -1; //判断chrome浏览器 if (isie) { var reie = new regexp("msie (\\d+\\.\\d+);"); reie.test(useragent); var fieversion = parsefloat(regexp["$1"]); if(fieversion == 7) { return "ie7";} else if(fieversion == 8) { return "ie8";} else if(fieversion == 9) { return "ie9";} else if(fieversion == 10) { return "ie10";} else if(fieversion == 11) { return "ie11";} else { return "0"}//ie版本过低 }//isie end if (isff) { return "ff";} if (isopera) { return "opera";} if (issafari) { return "safari";} if (ischrome) { return "chrome";} if (isedge) { return "edge";} }//mybrowser() end //判断是否是ie浏览器 function isie() { var useragent = navigator.useragent; //取得浏览器的useragent字符串 var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1 && !isopera; //判断是否ie浏览器 if(isie) { return "1"; } else { return "-1"; } } //判断是否是ie浏览器,包括edge浏览器 function ieversion() { var useragent = navigator.useragent; //取得浏览器的useragent字符串 var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1 && !isopera; //判断是否ie浏览器 var isedge = useragent.indexof("windows nt 6.1; trident/7.0;") > -1 && !isie; //判断是否ie的edge浏览器 if(isie) { var reie = new regexp("msie (\\d+\\.\\d+);"); reie.test(useragent); var fieversion = parsefloat(regexp["$1"]); if(fieversion == 7) { return "ie7";} else if(fieversion == 8) { return "ie8";} else if(fieversion == 9) { return "ie9";} else if(fieversion == 10) { return "ie10";} else if(fieversion == 11) { return "ie11";} else { return "0"}//ie版本过低 } else if(isedge) { return "edge"; } else { return "-1";//非ie } }
以上代码通过测试,可用!
但存在一个问题,即ie5与ie7浏览器暂不能区分,以下是ie5与ie7下useragent的信息;通过useragent发现,简单的通过以上方法,无法正确区分ie5和ie7。期待该问题的解决方案!!!
ie5: useragent "mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; trident/7.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; infopath.2; .net4.0e)"
ie7: useragent "mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; trident/7.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; infopath.2; .net4.0e)"
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。