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

  • 相关阅读:
    正则表达式的语法表
    leetcode1567. 乘积为正数的最长子数组长度 吴丹阳
    leetcode152. 乘积最大子数组 吴丹阳
    leetcode740. 删除并获得点数 吴丹阳
    leetcode53. 最大子数组和 吴丹阳
    leetcode55. 跳跃游戏 吴丹阳
    leetcode45. 跳跃游戏 II 吴丹阳
    leetcode213. 打家劫舍 II 吴丹阳
    leetcode918. 环形子数组的最大和 吴丹阳
    leetcode482. 密钥格式化 吴丹阳
  • 原文地址:https://www.cnblogs.com/justSmile2/p/9844724.html
Copyright © 2011-2022 走看看