打印 上一主题 下一主题

[百度网盘]Javascript检测浏览器类型和版本的代码(兼容ie11)

[复制链接]
跳转到指定楼层
楼主
admin 发表于 2017-10-2 07:07:33
4357 0
最新代码:(测试可用)
  1. <script type="text/javascript">
  2.     var userAgent = navigator.userAgent,
  3.     rMsie = /(msie\s|trident.*rv:)([\w.]+)/,
  4.     rFirefox = /(firefox)\/([\w.]+)/,
  5.     rOpera = /(opera).+version\/([\w.]+)/,
  6.     rChrome = /(chrome)\/([\w.]+)/,
  7.     rSafari = /version\/([\w.]+).*(safari)/;
  8.     var browser;
  9.     var version;
  10.     var ua = userAgent.toLowerCase();
  11.     function uaMatch(ua) {
  12.         var match = rMsie.exec(ua);
  13.         if (match != null) {
  14.             return { browser : "IE", version : match[2] || "0" };
  15.         }
  16.         var match = rFirefox.exec(ua);
  17.         if (match != null) {
  18.             return { browser : match[1] || "", version : match[2] || "0" };
  19.         }
  20.         var match = rOpera.exec(ua);
  21.         if (match != null) {
  22.             return { browser : match[1] || "", version : match[2] || "0" };
  23.         }
  24.         var match = rChrome.exec(ua);
  25.         if (match != null) {
  26.             return { browser : match[1] || "", version : match[2] || "0" };
  27.         }
  28.         var match = rSafari.exec(ua);
  29.         if (match != null) {
  30.             return { browser : match[2] || "", version : match[1] || "0" };
  31.         }
  32.         if (match != null) {
  33.             return { browser : "", version : "0" };
  34.         }
  35.     }
  36.     var browserMatch = uaMatch(userAgent.toLowerCase());
  37.     if (browserMatch.browser) {
  38.         browser = browserMatch.browser;
  39.         version = browserMatch.version;
  40.     }
  41.     alert(browser+" "+version);
  42. </script>
复制代码


对象/特征检测法

该方法是一种判断浏览器能力(而非浏览器的确切型号)的通用方法。大部分JS专家认为这个方法最合适,因为他们认为按照该方法所编写的脚本是经得起未来考验的。

  1. //获取IE浏览器的版本号
  2. //返回数值,显示IE的主版本号
  3. function getIEVer() {
  4.     var ua = navigator.userAgent; //获取用户端信息
  5.     var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置
  6.     if (b < 0) {
  7.     return 0;
  8.     }
  9.     return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本号字符串,并转换为数值
  10. }
  11. alert(getIEVer()); //返回数值8(我的IE8)
复制代码

如果更关注浏览器的能力而不在乎它实际的身份,就可以使用这种方法。

user-agent字符串检测法

user-agent字符串提供了关于Web浏览器的大量信息,包括浏览器的名称和版本。

  1. var ua = navigator.userAgent.toLowerCase(); //获取用户端信息
  2. var info = {
  3. ie: /msie/.test(ua) && !/opera/.test(ua), //匹配IE浏览器
  4. op: /opera/.test(ua), //匹配Opera浏览器
  5. sa: /version.*safari/.test(ua), //匹配Safari浏览器
  6. ch: /chrome/.test(ua), //匹配Chrome浏览器
  7. ff: /gecko/.test(ua) && !/webkit/.test(ua) //匹配Firefox浏览器
  8. };
  9. (info.ie) && alert("IE浏览器");
  10. (info.op) && alert("Opera浏览器");
  11. (info.sa) && alert("Safari浏览器");
  12. (info.ff) && alert("Firefox浏览器");
  13. (info.ch) && alert("Chrome浏览器");
复制代码
  1. function checkBrowser(type){
  2.     var ua = navigator.userAgent.toLowerCase();     //获取用户端信息
  3.     var info = {
  4.       ie: /msie/.test(ua) && !/opera/.test(ua),     //匹配IE浏览器
  5.       op: /opera/.test(ua),                         //匹配Opera浏览器
  6.       sa: /version.*safari/.test(ua),               //匹配Safari浏览器
  7.       ch: /chrome/.test(ua),                        //匹配Chrome浏览器
  8.       ff: /gecko/.test(ua) && !/webkit/.test(ua)    //匹配Firefox浏览器
  9.     };
  10.     if(type=="ie"){
  11.         return info.ie;
  12.     }
  13.     else if(type=="op"){
  14.         return info.op;
  15.     }
  16.     else if(type=="sa"){
  17.         return info.sa;
  18.     }
  19.     else if(type=="ch"){
  20.         return info.ch;
  21.     }
  22.     else if(type=="ff"){
  23.         return info.ff;
  24.     }
  25. }
  26. if(checkBrowser("ie")){}    //调用
  27. if(checkBrowser("ch")){}
复制代码

通常我们做得最多的,就是判断是否是IE了,其它几种浏览器一般都会符合标准.有些客户只需要符合IE和FF就已经满足了.那么我们可以这样做:

var isIE = (navigator.appName == "Microsoft Internet Explorer");

判断IE远远不止上面一种方法,可以使用IE更多特有的东西,如:window.ActiveXObject,document.all等,这些都属于对象/特征检测法了!通常要在不同的浏览器上写不同的样式(因为IE样式解析也各有不同),那就得判断版本了.可以这样做


  1. //获取IE浏览器的版本号
  2. //返回数值,显示IE的主版本号
  3. function getIEVer() {
  4.     var ua = navigator.userAgent; //获取用户端信息
  5.     var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置
  6.     if (b < 0) {
  7.     return 0;
  8.     }
  9.     return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本号字符串,并转换为数值
  10. }
  11. alert(getIEVer()); //返回数值7
复制代码

检测操作系统

  1. var isWin = (navigator.userAgent.indexOf("Win") != -1); //如果是Windows系统,则返回true
  2. var isMac = (navigator.userAgent.indexOf("Mac") != -1); //如果是Macintosh系统,则返回true
  3. var isUnix = (navigator.userAgent.indexOf("X11") != -1); //如果是Unix系统,则返回true
  4. var isLinux = (navigator.userAgent.indexOf("Linux") != -1); //如果是Linux系统,则返回true
复制代码

JS代码判断IE6,IE7,IE8,IE9的函数代码

JS代码判断浏览器版本,支持IE6,IE7,IE8,IE9!做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码


第一种:

  1. <script type="text/javascript">
  2. var browser=navigator.appName
  3. var b_version=navigator.appVersion
  4. var version=b_version.split(";");
  5. var trim_Version=version[1].replace(/[ ]/g,"");
  6. if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0")
  7. {
  8. alert("IE 6.0");
  9. }
  10. else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE7.0")
  11. {
  12. alert("IE 7.0"); window.location.href="http://xxxx.com";
  13. }
  14. else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE8.0")
  15. {
  16. alert("IE 8.0");
  17. }
  18. else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE9.0")
  19. {
  20. alert("IE 9.0");
  21. }
  22. </script>
复制代码

第二种:

  1. <script type="text/javascript">
  2. if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE6.0")
  3. {
  4. alert("IE 6.0");
  5. }
  6. else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE7.0")
  7. {
  8. alert("IE 7.0");
  9. }
  10. else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE8.0")
  11. {
  12. alert("IE 8.0");
  13. }
  14. else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE9.0")
  15. {
  16. alert("IE 9.0");
  17. }
  18. </script>
复制代码

第三种:

  1. <script type="text/javascript">
  2. if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/7./i)=="7.")
  3. {
  4. alert("IE 7.0");
  5. }
  6. else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/8./i)=="8.")
  7. {
  8. alert("IE 8.0");
  9. }
  10. else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/9./i)=="9.")
  11. {
  12. alert("IE 9.0");
  13. }
  14. else if(navigator.appName == "Microsoft Internet Explorer")
  15. {
  16. alert("IE 6.0");
  17. }
  18. </script>
复制代码



吾爱编程网 - 免责声明
1、吾爱编程网为非营利性网站,全站所有资料仅供网友个人学习使用,禁止商用
2、本站所有文档、视频、书籍等资料均由网友分享,本站只负责收集不承担任何技术及版权问题
3、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除下载链接并致以最深的歉意
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、一经注册为本站会员,一律视为同意网站规定,本站管理员及版主有权禁止违规用户
6、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和吾爱编程网的同意
7、吾爱编程网管理员和版主有权不事先通知发贴者而删除本文




上一篇:JavaScript学习历程和心得
下一篇:JS读取cookie(记住账号密码)
收藏
收藏
支持
支持
反对
反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表

平台简介

吾爱编程网:http://www.52pg.net/是IT技能学习交流平台,我们提供了丰富的移动端开发、php开发、web前端开发、android开发、Java开发、Python开发、大数据开发、区块链开发、人工智能开发以及html5等大量的实战视频教程资源。(如果我们有侵犯了您权益的资源请联系我们删除)

点击这里给我发消息|Archiver|手机版|小黑屋|站点地图|吾爱编程  |网站地图

Powered by Discuz! X3.2??? 2017-2020 Comsenz Inc.??吾爱编程网