js判断是否为IE浏览器的多种方法总汇

时间: 2018-06-08阅读: 3132标签: js知识

这篇文章主要整理通过js来判断浏览器是否为IE的多种方法。


方法一:

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

备注:window.ActiveXObject:判断浏览器是否支持ActiveX控件,只有IE浏览器里面支持ActiveX控件


方法二:

function isIE() { 
   var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 
   var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器 
   if(isIE){ 
      return true; 
   }else{ 
     return false; 
   } 
}

说明:通过获取userAgent中的信息来判断是否为IE


方法三:  

function isIE() { 
   	if(window.addEventListener){ 
		return false;
	}else if(window.attachEvent){ 
		return true;
	}else{
		return false;//这种情况发生在不支持Dhtml的老版本浏览器(现在一般都支持)
	}
}


方法四:

function isIE() { 
   	if(document.all){ 
		return true;
	}else{ 
		return false;
	}
}


方法五:  

function isIE() { 
   	var navigatorName = "Microsoft Internet Explorer"; 
	if(navigator.appName == navigatorName ){ 
		return true;
	}else{ 
		return false;
	}
}


方法六:    

function isIE() { 
	return !+[1,]?true:false;
}

在网上有幸看到夷人通过IE与非IE浏览器对垂直制表符支持特性搞出的一段简短的条件: 

var ie = !+"\v1";

以上出至32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE(需FQ) 而 更有牛人,据说是俄国大力士用6byte的长度将上面已经看似不能再短的判定条件记录刷新,如下:

var ie = !-[1,];

利用了IE与标准浏览器在处理数组的toString方法的差异做成的。对于标准游览器,如果数组里面最后一个字符为逗号,js 引擎会自动剔除它。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/868

你所忽略的js隐式转换

你有没有在面试中遇到特别奇葩的js隐形转换的面试题,第一反应是怎么会是这样呢?难以自信,js到底是怎么去计算得到结果,你是否有深入去了解其原理呢?下面将深入讲解其实现原理。

js中return关键词的作用_return的用法详解

return从字面意思来看就是返回,官方定义return语句将终止当前函数并可以返回当前函数的值; 也就是说return后面可以跟一个value,也就是说可以跟javascript中的任何数据类型

深入理解JS中引用类型和基本类型

javascript中基本类型指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。 引用类型指那些保存在堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。

Performance_js中计算网站性能监控利器

Performance提供的方法可以灵活使用,获取到页面加载等标记的耗时情况。Performance.timing属性对象提供了浏览器从打开网页到加载完成之间各个节点的耗时数据,包括重定向开始、DNS查询、浏览器响应数据、DOM解析等相关节点

JS 中的垃圾回收

对于开发者来说,JavaScript 的内存管理是自动的、无形的。我们创建的原始值、对象、函数……这一切都会占用内存。当某个东西我们不再需要时会发生什么?JavaScript 引擎如何发现它、清理它?

JavaScript中“javascript:void(0) ”是什么意思

expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是可选的,鉴于规范化,以及养成好习惯,建议写上去。当我们使用 void 操作符指定超级链接时,表达式会被计算但是不会在当前文档处装入任何内容。

为什么javascript不起作用?

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

js判断日期是否为今天

需求如下:后端返回字符串数据,需要前端判断该日期是否为今天。比如返回日期格式为:2018-08-14,那么需要如何来实现呢,这篇文章整理实现的几种方式供大家参考。

一眼看穿JS变量,作用域和内存问题

这篇文章将梳理下环境,作用域链,变量对象和活动对象,以及内存管理问题。基本类型和引用类型的值,我们都知道JS中的数据类型有两大类,基本数据类型和引用数据类型,下面从三个方面来解剖他们

base91 for javascript

原理和 base64 是一样的,ASCII 共有94个可打印字符,base64 使用了其中 64 个,base91 使用了 91 个。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!