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

最新文章

  1. 为支持ASP.NET5跨平台,Jexus再添新举措
  2. Visio连接数据表实体外键[快捷记录]
  3. FMDB简单使用
  4. Android ScrollView与ViewPager滑动冲突
  5. 小试.NET代码保护软件(代码混淆、加密)
  6. CSS(三)
  7. Solr(四)Solr实现简单的类似百度搜索高亮功能-1.配置Ik分词器
  8. swift3.0 移除当前页面的前一个页面
  9. pyqt的基本组件
  10. 【转】Tableau 9.3.8 desktop for Mac 中文破解
  11. linux 相关( 随时更新)
  12. 字符串匹配KMP算法详解
  13. 《R语言入门与实践》第二章:R包和帮助文档
  14. 两种 js下载文件的方法(转)
  15. crontab命令详解
  16. 20165305 苏振龙《Java程序设计》第四周学习总结
  17. java常用类-StringBuffer,Integer,Character
  18. Linux安装Nginx报错: ./configure: error: C compiler cc is not found
  19. 通过BeanShell获取UUID并将参数传递给Jmeter
  20. Spark源码分析之Checkpoint的过程

热门文章

  1. centos6.5安装sendmail
  2. C语言模拟ATM机界面
  3. 使用MySQLMTOP监控MySQL性能(二)
  4. mysql 内连接原理
  5. 理解 php new static
  6. C/C++ 开放库
  7. freemarker 判断写法
  8. 从零开始写JavaWeb框架(第二章节)
  9. (2.14)Mysql之SQL基础——游标
  10. Mysql中的auto_increment