最短的IE判断代码

Code:
var ie = !+"\v1";
仅仅需要7bytes!参见这篇文章,《32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE》,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事
但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的差异做成的。对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它。
Code:


代码如下:

var ie = !-[1,];
var ie = !-[1,];
alert(ie);

如果从非IE的角度判定,可以省一个比特,因为我们做兼容时,绝大多数情况都是IE与非IE地开工。
Code:


代码如下:

var notIE = -[1,];
if(-[1,]){
alert("这不是IE浏览器!");
}else{
alert("这是IE浏览器!");
}

(0)

相关推荐

  • js 全世界最短的IE浏览器判断代码

    var ie = !+"\v1"; 仅仅需要7bytes!参见这篇文章,<32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE>,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事 但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的差异做成的.对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会

  • 最短的IE判断var ie=!-[1,]分析

    以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的. 复制代码 代码如下: var ie = !+"\v1"; 仅仅需要7bytes!参见这篇文章,<32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE>,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toStr

  • 一个奇葩的最短的 IE 版本判断JS脚本

    使用 conditional comment 来判断 IE 的版本.嗯,是早早有人提出,但没有认真看代码.昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱.今天看到 Paul Irish 也提起,那么,推荐一下吧.这是作者博客上写的: 复制代码 代码如下: // ----------------------------------------------------------// A short snippet for detecting versions of IE in Jav

  • 解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码

    var ie = !-[1,]: 这句代码在IE9之前曾被称为世界上最短的IE判定代码.代码虽短但确包含了不少javascript基础知识在里面.在这个例子中代码执行时会先调用数组的toString()方法 ,执行[1,].toString()在IE6,7,8中将会得到"1,".然后表达式就变为!-"1,".再尝试把"1,"转换成数值类型得到NaN ,再对NaN取负得到值仍为NaN.最后执行!NaN返回true.下面通过分解这个语句来回顾下代码中

  • 最短的IE判断代码

    Code: var ie = !+"\v1"; 仅仅需要7bytes!参见这篇文章,<32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE>,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事 但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的差异做成的.对于标准游览器,如果数组里面最后一个字符为逗号

  • 世界上最短的数字判断js代码

    我们知道JavaScript提供了typeof运算符,因此最容易想到的是用typeof来判断是否是number类型 function isNumber(obj) { return typeof obj === 'number' } 这个函数对于整数和浮点数都没有问题,但对于NaN值也返回true这让人感到不爽,毕竟用isNumber判断通过后谁也不会用NaN去做算术运算. 那改进一下,用Object.prototype.toString试试 function isNumber(obj) { re

  • 跨域表单提交状态的变相判断代码

    拐个弯想,如果开始可以获得iframe内部页面信息,那么不能获得的时候,不就说明表单已经提交了么~ 我们发现百度的竞价右下角信息,也是采用的这种方法判断的,大家可以参考下.示例: test.html: 复制代码 代码如下: <html> <head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head> <body s

  • python 双循环遍历list 变量判断代码

    我就废话不多说了,大家还是直接看代码吧! file1 = 'C:\\Users\\Administrator\\Desktop\\test\\ALL.txt' file2 = 'C:\\Users\\Administrator\\Desktop\\test\\little.txt' ALLlist = [] Demondlist = [] with open(file1, "r") as f1: text1 = f1.read() with open(file2, "r&qu

  • 各种语言常用的一句话判断代码

    判断汉字 复制代码 代码如下: if (System.Text.Encoding.GetEncoding("gb2312").GetBytes("中").Length == 2) // C# if (escape(str).indexOf("%u") < 0) // JavaScript 判断数字 复制代码 代码如下: Number.as(v) // ezj Number.asInt(v) // ezj 判断整数 判断纯数字 复制代码 代码

  • js 多浏览器分别判断代码

    复制代码 代码如下: /* 浏览器判断 */ var userAgent = navigator.userAgent.toLowerCase(); var is_webtv = userAgent.indexOf('webtv') != -1; var is_kon = userAgent.indexOf('konqueror') != -1; var is_mac = userAgent.indexOf('mac') != -1; var is_saf = userAgent.indexOf(

  • php 来访国内外IP判断代码并实现页面跳转

    我大概构思了一下,有两个方案: 1. Javascript判断来访者的浏览器语言,如果是中文系统,自然使用者都是中国人,跳中文网站: 如果是非中文系统,默认使用者非中国人,跳英文网站. 优点:判断反映速度快. 缺点:不准确,有可能中国用户喜欢用英文版系统,或者外国人使用中文系统的情况. 代码 <script type="text/javascript" language="javascript"> var Browser_Agent=navigator.

随机推荐