【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]判断IE版本主要的是获取两个属性,a.当前浏览器名称,b.当前浏览器版本,为此不得不了解navigator对象。先贴代码作为一个初次了解navigator对象的人,对于appName属性(浏览器名

大家好,又见面了,我是你们的朋友全栈君。

判断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实际情况,如图:

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]

 

 

 

 

 

 

 

 

 

 

 

 

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

IE11 appName值

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]

 

 

 

 

 

 

 

IE10 appName值

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]

IE5 appName值

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]

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

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

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]

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

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

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性[通俗易懂]

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155606.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月3日 下午5:36
下一篇 2022年7月3日 下午5:46


相关推荐

  • 将char转换成int_c语言中int转char

    将char转换成int_c语言中int转char网络上现在能搜到的其他答案都是针对于类似chara=’2′;intb=a-‘0’;//valueofbis2这样的问题。那么如果问题是chara=-2;intb=a;//valueofbis?这样的问题呢?在一些编译器下会进行符号位扩展,直接保留符号,将a看作signedchar,b的值会是-2,

    2026年4月14日
    8
  • vmware 桥接模式下与虚拟机互ping不通问题-终极解决办法

    vmware 桥接模式下与虚拟机互ping不通问题-终极解决办法寻寻觅觅 在百度找了好几个月 一直没有解决 你没有看错 确实是好几个月 最终 google 了十分钟不到解决了本文目的 解决 ping 不通桥接虚拟机的问题废话不多说 先说解决办法 1 防火墙禁 ping 导致 关闭虚拟机 物理主机防火墙再试一下即可 或开启 icmp 访问 2 桥接的物理网卡不对解决办法选中桥接模式 更改下面的 桥接到 默认为 自动 改为自

    2026年3月20日
    3
  • mac goland 2021.12激活码_在线激活

    (mac goland 2021.12激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html3YVYA7ZZGQ-eyJsaWN…

    2022年3月30日
    152
  • webstorm永久激活码【中文破解版】

    (webstorm永久激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    77
  • sourceinsight注册码安装汉化教程_sourceinsight4.0中文乱码

    sourceinsight注册码安装汉化教程_sourceinsight4.0中文乱码注册码:SI3US-230590-09757SI3US-840598-11493SI3US-404808-04697SI3US-510811-93484SI3US-343066-11287

    2022年10月3日
    4
  • 大数据Hbase 面试题「建议收藏」

    大数据Hbase 面试题「建议收藏」1.2hbase的特点是什么  (1)Hbase一个分布式的基于列式存储的数据库,基于Hadoop的hdfs存储,zookeeper进行管理。(2)Hbase适合存储半结构化或非结构化数据,对于数据结构字段不够确定或者杂乱无章很难按一个概念去抽取的数据。(3)Hbase为null的记录不会被存储.(4)基于的表包含rowkey,时间戳,和列族。新写入数

    2022年5月31日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号