zoukankan      html  css  js  c++  java
  • js 判断浏览器类型及版本

    1.思路: 能力检测 + 字符串检索

    2.例子

    IE    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)      ActiveXObject函数

    Firefox   Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1      getBoxObjectFor函数

    Opera    Opera/9.27 (Windows NT 5.2; U; zh-cn)    window.opera属性

    Safari    Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13   openDatabase函数

    Chrome    Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13    有一个MessageEvent函数,但Firefox也有。不过,好在Chrome并没有Firefox的getBoxObjectFor函数

    3.代码

    3.1

            var Sys = {};
            var ua = navigator.userAgent.toLowerCase();
            if (window.ActiveXObject)
                Sys.ie = ua.match(/msie ([d.]+)/)[1]
            else if (document.getBoxObjectFor)
                Sys.firefox = ua.match(/firefox/([d.]+)/)[1]
            else if (window.MessageEvent && !document.getBoxObjectFor)
                Sys.chrome = ua.match(/chrome/([d.]+)/)[1]
            else if (window.opera)
                Sys.opera = ua.match(/opera.([d.]+)/)[1]
            else if (window.openDatabase)
                Sys.safari = ua.match(/version/([d.]+)/)[1];
            
            //以下进行测试
            if(Sys.ie) document.write('IE: '+Sys.ie);
            if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
            if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
            if(Sys.opera) document.write('Opera: '+Sys.opera);
            if(Sys.safari) document.write('Safari: '+Sys.safari);

    3.2

         var Sys = {};
            var ua = navigator.userAgent.toLowerCase();
            window.ActiveXObject ? Sys.ie = ua.match(/msie ([d.]+)/)[1] :
            document.getBoxObjectFor ? Sys.firefox = ua.match(/firefox/([d.]+)/)[1] :
            window.MessageEvent && !document.getBoxObjectFor ? Sys.chrome = ua.match(/chrome/([d.]+)/)[1] :
            window.opera ? Sys.opera = ua.match(/opera.([d.]+)/)[1] :
            window.openDatabase ? Sys.safari = ua.match(/version/([d.]+)/)[1] : 0;
            
            //以下进行测试
            if(Sys.ie) document.write('IE: '+Sys.ie);
            if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
            if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
            if(Sys.opera) document.write('Opera: '+Sys.opera);
            if(Sys.safari) document.write('Safari: '+Sys.safari);

    3.3

            var Sys = {};
            var ua = navigator.userAgent.toLowerCase();
            var s;
            (s = ua.match(/msie ([d.]+)/)) ? Sys.ie = s[1] :
            (s = ua.match(/firefox/([d.]+)/)) ? Sys.firefox = s[1] :
            (s = ua.match(/chrome/([d.]+)/)) ? Sys.chrome = s[1] :
            (s = ua.match(/opera.([d.]+)/)) ? Sys.opera = s[1] :
            (s = ua.match(/version/([d.]+).*safari/)) ? Sys.safari = s[1] : 0;

            //以下进行测试
            if (Sys.ie) document.write('IE: ' + Sys.ie);
            if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
            if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
            if (Sys.opera) document.write('Opera: ' + Sys.opera);
            if (Sys.safari) document.write('Safari: ' + Sys.safari);

    4. 相关文章

    js中兼容性问题的封装(能力检测)

    浏览器和功能检测

    js识别设备

    device.js

  • 相关阅读:
    谈一谈循环的性能提升
    Web前端性能优化的9大问题
    随机获取一种颜色值的三种方法
    ES6还是ES2015?
    history.back(-1)和history.go(-1)的区别
    关于overflow-y:scroll ios设备不流畅的问题
    前端如何压缩图片
    【转】理解JavaScript之闭包
    关于如何给数字排序
    本地缓存localstorage使用
  • 原文地址:https://www.cnblogs.com/justSmile2/p/9844724.html
Copyright © 2011-2022 走看看