• js 检测浏览器


        首先还是IE浏览器的检测,一般我们在写代码的时候,出现的兼容性bug几乎都来自IE。从IE10以后,IE还算有点良心,支持了大部门的CSS3及H5的新特性。那么在IE10之前呢,就要才去别的手段来代替CSS3的某些效果,这样呢就要检测浏览器类型了,特事特办嘛。

        检测IE10之前的浏览器

    window.navigator.userAgent.indexOf("MSIE")>=1

    返回true代表是IE浏览器,返回false就说明不是IE

    e10及以上不支持ie浏览器的判断了,因为ie11已经不支持document.all了,下面是支持ie11的版本的,当然ie6-8也是支持的

    if(!!window.ActiveXObject || "ActiveXObject" in window) {
      alert("这是IE浏览器")  
    } else {
      alert("这不是IE浏览器")      
    }

    如果区分浏览器,并考虑IE5.5,6,7,8

    function myBrowser(){
        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 isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器
        var isSafari = userAgent.indexOf("Safari") > -1; //判断是否Safari浏览器
        if (isIE) {
            var IE5 = IE55 = IE6 = IE7 = IE8 = false;
            var reIE = new RegExp("MSIE (\d+\.\d+);");
            reIE.test(userAgent);
            var fIEVersion = parseFloat(RegExp["$1"]);
            IE55 = fIEVersion == 5.5;
            IE6 = fIEVersion == 6.0;
            IE7 = fIEVersion == 7.0;
            IE8 = fIEVersion == 8.0;
            if (IE55) {
                return "IE55";
            }
            if (IE6) {
                return "IE6";
            }
            if (IE7) {
                return "IE7";
            }
            if (IE8) {
                return "IE8";
            }
        }//isIE end
        if (isFF) {
            return "FF";
        }
        if (isOpera) {
            return "Opera";
        }
    }//myBrowser() end
    //以下是调用上面的函数
    if (myBrowser() == "FF") {
        alert("我是 Firefox");
    }
    if (myBrowser() == "Opera") {
        alert("我是 Opera");
    }
    if (myBrowser() == "Safari") {
        alert("我是 Safari");
    }
    if (myBrowser() == "IE55") {
        alert("我是 IE5.5");
    }
    if (myBrowser() == "IE6") {
        alert("我是 IE6");
    }
    if (myBrowser() == "IE7") {
        alert("我是 IE7");
    }
    if (myBrowser() == "IE8") {
        alert("我是 IE8");
    }

    当然如果简单一点的判断IE浏览器

    var ie = !-[1,]; 
    alert(ie); 

    原理是利用了IE与标准浏览器在处理数组的toString方法的差异做成的。对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它。 

  • 相关阅读:
    Javascript中对文字编码的三个函数
    Web.config文件中关于Cookie安全性的考量和设置
    面试时被问到的问题
    JQuery中查找父元素,子元素,追加元素,插入元素和删除元素 及其他常用方法
    JQuery插件开发学习
    Umbraco image中使用Crop URL
    SQL中的row_number() over()解释
    GEO,IGSO,MEO,LEO
    计算机网络端口常识
    VMnet1和VMnet8 未识别的网络的解决方法
  • 原文地址:https://www.cnblogs.com/shenjp/p/6826994.html
Copyright © 2020-2023  润新知