欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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的判断方式有所不同,后面我会给出几个图

js如何实现判断是否是ie浏览器且给出ie版本?

这个是ie11的useragent

js如何实现判断是否是ie浏览器且给出ie版本?

这个是edge的useragent

js如何实现判断是否是ie浏览器且给出ie版本?

ie9的useragent

js如何实现判断是否是ie浏览器且给出ie版本?

ie8的useragent

js如何实现判断是否是ie浏览器且给出ie版本?

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浏览器