判断IE版本主要的是获取两个属性,a.当前浏览器名称b.当前浏览器版本,为此不得不了解navigator对象。

先贴代码

 1 window.onload = function() {
 2   var browser_name = navigator.appName, //获取当前浏览器的名称
 3       browser_version = navigator.appVersion, //获取当前浏览器的平台和版本信息
 4       version_arr = browser_version.split(";"), //将平台版本信息按照;切割成数组
 5       version = version_arr[1].replace(/\s/g, ""); //取上一步数组下标为1的元素,去空格
 6      // console.log(browser_name);
 7      // console.log(browser_version);
 8      // console.log(version_arr);
 9      // console.log(version);
10
11   if (browser_name == "Microsoft Internet Explorer") { //如果浏览器名称为IE
12     if (version == "MSIE5.0" || version == "MSIE7.0") { //当前IE版本满足其中任意一个执行以下操作
13
14       alert(“为了您更好的体验,请下载最新的浏览器”);
15     }
16   }
17 };

作为一个初次了解navigator对象的人,对于appName属性(浏览器名称),你的直观感觉可能是,使用谷歌浏览器获取的就是chrome,使用QQ浏览器获取的名称就是qqbrowser,不过很可惜,目前appName获取的值只存在两种,一是"Netscape"  (网景),二是“Microsoft Internet Explorer”  (IE)。

就当前浏览器例如谷歌,360,QQ浏览器,搜狗,IE11等,获取的appName均为Netscape,根据w3school的说明,此举是便于浏览器之间的兼容性,不过对于互联网发展史有所了解的人都知道,Netscape对于互联网发展的所做出的卓出贡献,所以对于部分网友所言,此举也是出于对Netscape的缅怀之意也挺有道理。

包括IE10及IE以下低版本,appName获取值均为Microsoft Internet Explorer,如果你的电脑上安装了IE11按F12调出控制台,使用仿真效果可以模拟各版本IE实际情况,如图:

我们可以看看默认的IE11以及IE10部分版本的appName值情况

IE11 appName值

IE10 appName值

IE5 appName值

可以看出,版本低于11的IE版本,appName属性均为Microsoft Internet Explorer。(话说网景正是因为IE才落魄,结果现在IE为了兼容,appName居然也为网景了....)

最后简单说说Navigator的appVersion获取版本号属性,一般使用IE10及以下版本,获取的值是这样的

包括IE8,IE7等低版本,版本信息格式均为上图,所以在获取版本的方法 上使用了split(“;”)来进行切割,获取下标1的元素即可判断版本。

但需要注意的是,IE11以及当下的主流浏览器版本信息格式并不与上图相同,所以不同浏览器具体抓取方法请根据实际情况去判断。如下图为谷歌的版本信息

大概就写这么多吧,我的第一篇博客文。

转载于:https://www.cnblogs.com/echolun/p/7296335.html

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性相关推荐

  1. WPF制作的一个小功能,智能提示(IntelliSense)

    WPF制作的一个小功能,智能提示(IntelliSense) 原文 http://www.cnblogs.com/scheshan/archive/2012/06/30/2570867.html 最近 ...

  2. 给 OpenPOP.Net 加一个小功能,可用于收取邮件时监测数据流量!

    /* 最近写了一个自动收邮件的机器人,原来一开始偷懒"娶"了 COM 组件 JMail: <封装 JMail 4.4 的 POP3 为 .Net 组件 (.dll 程序集), ...

  3. JS 判断浏览器版本

    JS 判断浏览器版本 1.JS 区分各个浏览器(方法一) var browser={versions:function(){var u = navigator.userAgent, app = nav ...

  4. PHP判断浏览器内核过低,js判断浏览器版本以及浏览器内核的方法

    本文实例讲述了js判断浏览器版本以及浏览器内核的方法.分享给大家供大家参考.具体实现方法如下: js判断是否移动端及浏览器内核 var browser = { versions: function() ...

  5. JS判断浏览器版本(已解决IE11版本为Mozilla问题)

    兼容IE11的判断方式 var getExplorer = (function() {var explorer = window.navigator.userAgent,compare = funct ...

  6. 因为一个小功能,我对微信手机号转账的好感度加了10分

    微信支付上线了"手机号转账"功能,不加好友也能转账,这就意味着再也不能通过微信加好友转账来套路小姐姐微信了,但你可以通过手机号转账功能直接找小姐姐要手机号码. 作为一个稍微有点安全 ...

  7. js 编码 php 解码,浅谈php和js中json的编码和解码

    php中 1)编码 $jsonStr = json_encode($array) 2)解码 $arr = json_decode($jsonStr) echo json_encode("中文 ...

  8. 【js细节剖析】通过=操作符为对象添加新属性时,结果会受到原型链上的同名属性影响...

    在使用JavaScript的过程中,通过"="操作符为对象添加新属性是很常见的操作:obj.newProp = 'value';.但是,这个操作的结果实际上会受到原型链上的同名属性 ...

  9. 外架小横杆外露长度规范要求_浅谈提高悬挑架质量、安全及视觉效果的管理方法...

    摘 要:随着高层建筑日趋增多,脚手架在施工时是必不可少的,而悬挑式脚手架由于不受层高和场地限制的特点在高层建筑施工中被广泛应用.相对于落地式钢管脚手架,悬挑式脚手架具有投入低.周转快.节约工期等优点. ...

最新文章

  1. 异步化,高并发大杀器
  2. 深度解读:人体防御病毒的免疫力究竟是什么?
  3. SQL Server - 使用 Merge 语句实现表数据之间的对比同步
  4. cmd下,如何在文本的指定行添加内容
  5. php 数据库查询乱码,怎么解决php数据库查询乱码问题
  6. xhprof 安装使用(windows linux混版)
  7. 腾讯专家谈全球数据保护案例
  8. python全栈生鲜电商_Vue+Django REST framework 打造生鲜电商项目(学习笔记一)
  9. python中利用pygame模块输出文字
  10. MySQL下载和安装教程
  11. 再见也是永别——告别即将消逝的雅虎邮箱
  12. 照着这本“书”,3年量产自动驾驶卡车
  13. Java反射05 : 修饰符Modifier静态方法学习示例
  14. Android壁纸之静态壁纸
  15. oracle禁用系统用户登录,关闭系统 - 在 x86 平台上引导和关闭 Oracle Solaris
  16. Win10 Office2016 激H失败错误代码0x80080005
  17. 高效备考腾讯云开发工程师TCA:题目解析和实用技巧大揭秘!
  18. 2020移动apn接入点哪个快_为什么别人的4g网总比你快? 手机这个设置没开启, 难怪网络...
  19. 深度学习系列笔记之统计基础
  20. 常见加密算法特点及适用场景

热门文章

  1. 赋予城市生命力,新华三的智慧城市理念
  2. 你无法让一个瞎子理解颜色的多彩
  3. 基于C#制作一个飞机大战小游戏
  4. 笔记:宾大《Algebra, Topology, Differential Calculus, and Optimization Theory For CS and ML》——第三章第九节
  5. 键盘鼠标比厕所脏400倍当心电脑操作染疾病
  6. 一起来读源码41-eosio.cdt privileged
  7. 2020年秋招联发科小米等20家公司面经总结
  8. android studio各个资源文件夹以及作用备注
  9. 关于三星设备 Activity.onDestroy() 被调用。显示“开发者选项”
  10. 零售店铺想要日进斗金?这三个点照着做就行!