JavaScript中一个奇葩的IE浏览器判断方法

 更新时间:2014年04月16日 09:10:44   作者:  
在写原生的Javascript的时候,因为IE的JS引擎与标准浏览器的JS引擎之间总有那么些差异,所以经常会去判断是否是IE浏览器
记得在网上Down的很多源码用的最多的一种方式就是:
复制代码 代码如下:
var ie = document.all();

这是因为IE浏览器的document下有all方法,而所谓的标准浏览器却没有,所以很长的一段时间,这个是一种非常普遍的方法。
在之后大家开始追求起简短,就像在这之后一度流行的一种方法:
复制代码 代码如下:
var ie = ! + "\v1";

这个是利用IE不支持垂直制表符的特性而判别的,仅仅7个字符已经很让人震惊了,可是这个记录被一个俄国人在今年早些的时候打破了,人家只需要6个字符就可以搞定了。
我们暂且不讨论这一个字符能够做什么,但把它看作是一种研究,或者你说他是闲的那啥痛也行(吐槽~)。
复制代码 代码如下:
var ie = ! - [1,];

其实它的原理很简单,[1,]在标准浏览器会返回字符串"1",相当于调用[1,].toString,IE则返回"1,"。但是这样IE与标准都会通过检测,因此使用负号强制转换为数字,标准能成功转换为1,1会在if中自动转换为true,而IE则转换为NaN,再自动转换为false!查看DEMO。
很简单对吧?肯定会有很多人跟我一样在想,我怎么就没想到呢?是啊,我怎么就没想到呢?(笑~)

相关文章

  • JavaScript对象详解之对象属性的添加

    JavaScript对象详解之对象属性的添加

    这篇文章主要给大家介绍了关于JavaScript对象详解之js对象属性的添加的相关资料,在JavaScript中对象是通过键值对来存储数据的一种数据类型,可以通过直接给对象添加属性的方式来增加对象的属性,需要的朋友可以参考下
    2023-07-07
  • 基于ajax与msmq技术的消息推送功能实现代码

    基于ajax与msmq技术的消息推送功能实现代码

    这篇文章主要介绍了基于ajax与msmq技术的消息推送功能实现代码,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • 基于SVG的web页面图形绘制API介绍及编程演示

    基于SVG的web页面图形绘制API介绍及编程演示

    SVG的全称是可扩展的矢量图形跟传统的Raster方式的图形(JPG, PNG, GIF等)有很大的差别,下面与大家分享下JavaScript中SVG API编程演示,感兴趣的朋友可以参考下哈
    2013-06-06
  • JavaScript 学习技巧

    JavaScript 学习技巧

    JavaScript 学习技巧,需要的朋友可以参考下。
    2010-02-02
  • Javascript ES6中数据类型Symbol的使用详解

    Javascript ES6中数据类型Symbol的使用详解

    Symbol类型是es6新增的一个数据类型,Symbol值通过Symbol函数生成Symbol类型是保证每个属性的名字都是独一无二的,对于一个对象由对个模块构成的情况非常有用,本文主要介绍了Javascript ES6中数据类型Symbol使用的相关资料,需要的朋友可以参考下。
    2017-05-05
  • JS中的数组的sort方法使用示例

    JS中的数组的sort方法使用示例

    sort会调用每一项的toString方法进行比较,下面为大家介绍下JS中数组sort方法的具体使用
    2014-01-01
  • JavaScript实现多文件拖动上传功能

    JavaScript实现多文件拖动上传功能

    这篇文章主要为大家详细介绍了如何使用JavaScript实现多文件拖动上传功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • JavaScript实现伸缩二级菜单

    JavaScript实现伸缩二级菜单

    这篇文章主要为大家详细介绍了JavaScript实现伸缩二级菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 前端JavaScript实现本地模糊搜索功能的方法实例

    前端JavaScript实现本地模糊搜索功能的方法实例

    对于模糊查询,一般都是传关键字给后端,由后端来做。但是有时候一些轻量级的列表前端来做可以减少ajax请求,在一定程度上提高用户体验,这篇文章主要给大家介绍了关于前端JavaScript如何实现本地模糊搜索功能的相关资料,需要的朋友可以参考下
    2021-07-07
  • js 动态修改css文件用到了cssRule

    js 动态修改css文件用到了cssRule

    js 动态修改css文件,循环用的underscore,在使用cssRule只能使用cssRule.style.padding=0px,详细示例如下
    2014-08-08

最新评论