PHPIN.NET

 找回密码
 立即注册
查看: 4348|回复: 0

[其他] 最短JS判断是否为IE6(IE的写法)

[复制链接]

469

主题

31

回帖

5497

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5497
发表于 2015-2-11 09:59:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最短JS判断是否为IE6(IE的写法)

常用的 JavaScript 检测浏览器为 IE 是哪个版本的代码,包括是否是最人极端厌恶的 ie6 识别与检测。
代码如下:
  1. var isIE=!!window.ActiveXObject;
  2. var isIE6=isIE&&!window.XMLHttpRequest;
  3. var isIE8=isIE&&!!document.documentMode;
  4. var isIE7=isIE&&!isIE6&&!isIE8;
  5. if (isIE){
  6. if (isIE6){
  7. alert("ie6");
  8. }else if (isIE8){
  9. alert("ie8");
  10. }else if (isIE7){
  11. alert("ie7");
  12. }
  13. }
复制代码

然后是一个稍微短的 js 判断是否 ie 的方法:
这个貌似是利用 IE 中 JScript所特有的条件编译(或曰条件注释)来区分 IE 和非 IE(这里的IE/非IE均是针对内核而言,以IE为内核的浏览器将视为IE)
代码如下:
  1. var ie = 0/*@cc_on+1@*/;
复制代码

一个最短的 js 判断 ie 或非 ie 的代码,大小仅仅 7bytes:
  1. var ie = !+'\v1';
复制代码

2010年1月,一位俄国人利用了IE与标准浏览器在处理数组的toString方法的差异,仅6bytes就完美完成了是否IE浏览器的检测:
代码如下:
  1. var ie = !-[1,];
复制代码

利用这些发现,我们可以使代码写的更短。如今检测是否为 IE6 其实可以写成:
代码如下:
  1. var ie6=!-[1,]&&!window.XMLHttpRequest;
复制代码

之前那大段累赘的分析 navigator,然后正则比较的方式,后面的 js 方法是不是效率更高了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|PHPIN.NET ( 冀ICP备12000898号-14 )|网站地图

GMT+8, 2024-3-29 05:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表