js如何实现判断是否是ie浏览器且给出ie版本?
程序员文章站
2022-08-31 23:14:30
之前懒得写判断ie版本js,因为网上关于这方面的代码太多了,所以从网上拷贝了一个,放到项目上才发现由于时效性的问题,代码不生效。就自己写一个吧。
怎么去看的内核等信息 ---- js的全局对象win...
之前懒得写判断ie版本js,因为网上关于这方面的代码太多了,所以从网上拷贝了一个,放到项目上才发现由于时效性的问题,代码不生效。就自己写一个吧。
怎么去看的内核等信息 ---- js的全局对象window子属性navigator.useragent,这个属性是包含了浏览器信息的相关信息,包括我们需要的浏览器内核
navigator.useragent这个值取出来是个字符串,可以通过string的 indexof方法或者正则匹配来验证关键字符串
ie11和edge的判断方式有所不同,后面我会给出几个图
这个是ie11的useragent
这个是edge的useragent
ie9的useragent
ie8的useragent
ie10的useragent
你一定发现了,ie11和edge的useragent是和ie8,9,10差别蛮大的,那么对用的在写js时需要特别判断,下面给出我写好的一段判断是否是ie且给出ie版本号的js代码段
function ieversion() { var useragent = navigator.useragent; //取得浏览器的useragent字符串 var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1; //判断是否ie<11浏览器 var isedge = useragent.indexof("edge") > -1 && !isie; //判断是否ie的edge浏览器 var isie11 = useragent.indexof('trident') > -1 && useragent.indexof("rv:11.0") > -1; if(isie) { var reie = new regexp("msie (\\d+\\.\\d+);"); reie.test(useragent); var fieversion = parsefloat(regexp["$1"]); if(fieversion == 7) { return 7; } else if(fieversion == 8) { return 8; } else if(fieversion == 9) { return 9; } else if(fieversion == 10) { return 10; } else { return 6;//ie版本<=7 } } else if(isedge) { return 'edge';//edge } else if(isie11) { return 11; //ie11 }else{ return -1;//不是ie浏览器 } }
通过调用 ieversion()可以获得返回值,值如下
值 | 值类型 | 值说明 |
-1 | number | 不是ie浏览器 |
6 | number | ie版本<=6 |
7 | number | ie7 |
8 | number | ie8 |
9 | number | ie9 |
10 | number | ie10 |
11 | number | ie11 |
'edge' | string | ie的edge浏览器 |
上一篇: HTML5(video)背景大视频响应式布局完美支持
下一篇: Java 8 HashMap