zoukankan      html  css  js  c++  java
  • 浏览器判断

    区别IE及非IE浏览器

    之前,js判断的方式都是利用浏览器的useragent字段。通过判断useragent字段里面是否包含有MSIE字段来判断是否是IE系列浏览器,屡试不爽。

    但是在IE11之后,微软把自家的IE革命了,IE11里面的useagent没有MSIE字样。IE 11的userAgent为:"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; rv:11.0) like Gecko"。明显之前根据MSIE的方式来判断,对IE11是失效的。

     

    其实除了userAgent字段外,我们可以使用ActiveXObject对象来进行判断。

    一个很简单的判断函数如下

    function isIE()
    {
    	if(!!window.ActiveXObject || "ActiveXObject" in window)
    		return true;
    	else
    		return false;
    }

    一些说明如下:

     

    1.IE早些版本时,IE10及以下,window.ActiveXObject 返回一个对象,!window.ActiveXObject则变为false,!!window.ActiveXObject则为true,因为是或||符号后续无需再判断,返回true。

    2.IE11中,window.ActiveXObject返回undefine,!window.ActiveXObject则变成了true,!!window.ActiveXObject则变成了false,进入 "window.ActiveXObject" in window判断,该判断条件在IE11下返回true。

    3.其他非IE浏览器,如chrome,firefox,window.ActiveXObject都是undefine,!!window.ActiveXObject都是返回的false,而 "window.ActiveXObject" in window也是返回false,因此上述判断函数在非IE浏览器中返回的都是false。

     

     

     

    参考地址:http://m.blog.csdn.net/blog/whupanyinghua/38026027

  • 相关阅读:
    C#遍历指定路径下的文件夹
    ArcEngine的拓扑分析之ITopologicalOperator
    ArcEngine的拓扑分析之ITopologicalOperator
    输出旋转方形数字图形
    hdu4861(游戏)
    动态规划解决最长公共子序列问题(转)
    求解概率的坑题
    最后一周第二天训练赛之第二题
    最后一周训练赛第一题
    洛谷—— P2690 接苹果
  • 原文地址:https://www.cnblogs.com/huangxiaowen/p/5075871.html
Copyright © 2011-2022 走看看