zoukankan      html  css  js  c++  java
  • 最短判断IE的办法

    if(!!-[1,]){ return };
    

    无意中看到这样一行代码,经查是用来判断IE的代码,非常精简,原理如下:

    [1,],这是一个数组,IE和标准浏览器对这样一个数组的解析是不一样的

    alert之后你会发现IE输出结果为“1,”(1后面有个逗号),标准浏览器则输出1,输出这个数组的长度,IE显示为2,标准浏览器显示为1

    在标准浏览器中,数组最后一个逗号是被忽略的但是IE会添加一个空元素到数组里面去(这是IE的bug造成的,IE8之后的浏览器修复了这个bug)

    -[1,]的作用是把这个数组转换成数字,很显然“1,”是无法转换的,因此IE返回NaN,标准浏览器则返回1

    !!-[1,]进行Boolean操作之后就能区分出IE和标准浏览器

    PS:IE早就意识到这个bug,并在IE9及以上浏览器中做了修复,所以该方法也只能用来判断IE8及以下的浏览器

  • 相关阅读:
    RPC的入门
    Https的实现原理
    Celery
    Flask信号
    Redis安装
    python之递归
    python之三元表达式和生成式
    python第十八天作业
    python之生成器
    python之迭代器
  • 原文地址:https://www.cnblogs.com/diantao/p/5381649.html
Copyright © 2011-2022 走看看