jquery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 使用率极高。但是在版本发布之后,大家钟爱的这个属性被无情的抛弃了。大家开始着手寻找.browser 的替代方案。于是各种利用 ie bug 的检测方法被搜了出来:
// ie 678 最短方法 var ie = !-[1,];
解析 :
在标准浏览器下false
ie 6 7 8 下:
true
/* ie678 */
[-1,] //[object array] [-1, undefined] 逗号后位置初始化为undefined未省略 2
-[-1,] //nan
/* 非ie */
[-1,] // [-1] 省略了 , 之后空位 1
-[-1,] // 1 隐式计算 先转化为number然后进行 --取反
当然还有很多方式,这里稍微列举一下
var ie = /*@cc_on!@*/false
var ie//@cc_on=1
var ie = '\v'=='v'
var ie = !+"\v1"
比如 下面几种 反向判断赋值 如果 a == b 那就让 a = c 如果 a == c 那就让 a = b
我们尝试一行代码解决这个问题吧!!!
按位异或计算
真^假=真
假^真=真
假^假=假
真^真=假’
只要能把小数位干掉,目的就达到了
如对本文有疑问, 点击进行留言回复!!
offset、client、scroll (width,height、left,top、X,Y)
网友评论