指引网

当前位置: 主页 > 网页制作 > JavaScript >

javascript判断ie浏览器版本号

来源:网络 作者:佚名 点击: 时间:2017-08-07 22:21
[摘要] 在做项目的时候经常需要判断浏览器的版本号,下面整理三种利用js来判断ie浏览器版本号例子,都经过测试可用的,它们三个都基于userAgent来
在做项目的时候经常需要判断浏览器的版本号,下面整理三种利用js来判断ie浏览器版本号例子,都经过测试可用的,它们三个都基于userAgent来判断的,但是如文章后面所说很多厂商把userAgent修改了,所以不一定可以判断准确。
 
复制代码代码如下:
  1. msie = int((/msie (d+)/.exec((navigator.userAgent).toLowerCase()) || [])[1]);
  2. /* IE 11改变了它的userAgent格式,所以要进一步判断 */
  3. if (isNaN(msie)) {
  4.     msie = int((/trident/.*; rv:(d+)/.exec((navigator.userAgent).toUpperCase()) || [])[1]);
  5. }
例子

思路很好,新增一个div元素,然后通过使用while循环判断使用IE条件注释的div标签中是否含有i标签,如果含有,v则自增1,直到浏览器无法读取到i标签为止。此时的v值如果大于4则为IE的实际版本号,否则v就是小于IE5的IE浏览器或者非IE浏览器,返回false。
 

 
复制代码代码如下:
  1. var ieVersion = (function() {
  2. var v = 3,
  3. div = document.createElement('div'),
  4. all = div.getElementsByTagName('i');
  5. while (
  6. div.innerHTML = '',
  7. all[0]
  8. ); www.111cn.net
  9. return v > 4 ? v : false;
  10. })();
最后总结

正则搜索 USER_AGENT ;
但因为历史原因, USER_AGENT 一直都不准确,而且被各大厂商改的乱七八糟。
比如:

IE10 : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)

IE11 : Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

所以大家还是以标准为主吧

------分隔线----------------------------