JavaScript,封装库--浏览器检测

在函数库编写一个,浏览器检测对象

/** sys浏览器检测对象,对象下有两个属性,liu_lan_qi属性和xi_tong属性
* liu_lan_qi属性,检测浏览器名称和版本号,如:alert(sys.liu_lan_qi);
* xi_tong属性,检测浏览器运行环境,如:alert(sys.xi_tong);
**/
(function () { //闭包,自我执行
window.sys = {}; //全局变量对象,保存浏览器信息
var ua = navigator.userAgent.toLowerCase(); //获取浏览器信息,并转化成小写
var s = []; //浏览器信息数组
/**判断IE浏览器**/
if ((/msie ([\d.]+)/).test(ua)) { //IE10以下判断字段为:msie x版本号
s = ua.match(/msie ([\d.]+)/); //如果有获取到msie x版本号返回数组
sys.liu_lan_qi = '浏览器为IE:' + s[1]; //向sys对象添加liu_lan_qi属性,属性值等于获取到的数组第二个元素
} else if ((/trident/).test(ua)) { //ie10以上判断字段为:trident
s = ua.match(/rv:([\d.]+)/); //如果有获取到trident字段返回数组
sys.liu_lan_qi = '浏览器为IE:' + s[1];
}
/**判断火狐浏览器**/
if ((/firefox\/([\d.]+)/).test(ua)) { //火狐判断字段为:firefox
s = ua.match(/firefox\/([\d.]+)/);
sys.liu_lan_qi = '浏览器为firefox:' + s[1];
}
/**判断谷歌浏览器**/
if ((/chrome\/([\d.]+)/).test(ua)) { //谷歌判断字段为:chrome
s = ua.match(/chrome\/([\d.]+)/);
sys.liu_lan_qi = '浏览器为chrome:' + s[1];
}
/**判断Opera浏览器**/
if ((/opera\/.*version\/([\d.]+)/).test(ua)) { //谷歌判断字段为:opera 与 version
s = ua.match(/opera\/.*version\/([\d.]+)/);
sys.liu_lan_qi = '浏览器为Opera:' + s[1];
}
/**判断Opera浏览器**/
if ((/version\/([\d.]+).*safari/).test(ua)) { //谷歌判断字段为:version 与 safari
s = ua.match(/version\/([\d.]+).*safari/);
sys.liu_lan_qi = '浏览器为Opera:' + s[1];
}
/**判断系统**/
if (Boolean(navigator.platform)) {
sys.xi_tong = '环境系统为:' + navigator.platform;
} else {
alert("无法检测到环境系统")
}
})();

前台js代码

    alert(sys.liu_lan_qi);
alert(sys.xi_tong);

第一百四十节,JavaScript,封装库--浏览器检测的更多相关文章

  1. 第一百四十八节,封装库--JavaScript,菜单切换

    第一百四十八节,封装库--JavaScript,菜单切换 首先在封装库封装点击切换方法 /** dian_ji_qie_huan()方法,设置点击切换,将元素设置成点击切换,也就是点击目标元素后,循环 ...

  2. 第一百四十七节,封装库--JavaScript,滑动导航

    JavaScript,封装库--滑动导航 效果图 html <!--滑动导航--> <div id="nav"> <ul class="ab ...

  3. 第一百五十节,封装库--JavaScript,表单验证--密码验证

    封装库--JavaScript,表单验证--密码验证 效果图 html <div id="reg"> <h2 class="tuo">& ...

  4. 第一百六十节,封装库--JavaScript,ajax注册表单到数据库

    封装库--JavaScript,ajax注册表单到数据库 效果图 前台js var biaodan = $().xu_lie_biao_dan($('form').sh_jd()); //序列化获取表 ...

  5. 【JavaScript 封装库】BETA 4.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  6. 【JavaScript 封装库】BETA 3.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  7. 【JavaScript 封装库】BETA 2.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  8. 【JavaScript 封装库】BETA 1.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  9. 第三百四十节,Python分布式爬虫打造搜索引擎Scrapy精讲—css选择器

    第三百四十节,Python分布式爬虫打造搜索引擎Scrapy精讲—css选择器 css选择器 1. 2. 3.  ::attr()获取元素属性,css选择器 ::text获取标签文本 举例: extr ...

随机推荐

  1. FastIV图像处理

    新建一图像处理算法群,主要讨论图像处理与计算机视觉中的快速算法及其工程实现. 群号码:322687422

  2. database工具

    JetBrains DataGrip:一个可以支持多种数据库的IDE

  3. asp 按钮 调用ajax时 会出现返回错误,尽量使用html按钮进行调用

    asp 按钮 调用ajax时 会出现返回错误,尽量使用html按钮进行调用

  4. 探寻C++最快的读取文件的方案

    https://www.byvoid.com/blog/fast-readfile/ 在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式.相信几乎所有的C++学习者都在cin ...

  5. JMeter 一:Elements of a Test Plan

    参考:http://jmeter.apache.org/usermanual/test_plan.html 最小测试集包括:Test Plan,一个Thread Group,以及一个或多个Sample ...

  6. MongoDB之Map-Reduce -- Mongo Shell版和C#版(上)

    最近有在学习MongoDB,看到了关于Map-Reduce,觉得蛮有意思的,所以在这里就记录下来作为学习笔记. 关于Map-Reduce的作用这里就引用一下官网以及另外一篇文章看到的,言简意赅. 1. ...

  7. mysql创建用户、授权,revoke

     use mysql;set password for root =password('haowumz');select host,user,password from user ;show gran ...

  8. mysql 取字段内容的第一个字符并大写

    update words set `indexkey` = UPPER(left(word,1)) mysql 取字段内容的第一个字符并大写 用到两个mysql函数: 转换为大写:upper( ) 截 ...

  9. 重写kinect2_viewer,编译高博kinect2在orbslam2上跑的程序(解决cmakefile中库依赖和头文件的问题)

    该方法详述了高博kinect2_viewer的编译过程 //...................................................................... ...

  10. 巧用FTP命令进行文件传输

    巧用FTP进行文件传输   Internet作为现代信息高速公路已深入我们的生活,其中它所提供的电子邮件Web网站信息服务已被越来越多的人所熟知和使用.FTP作为Internet的功能之一,虽然没有像 ...