js ie非ie浏览器的几种判断方法小结
最近在 司徒正美js 全世界最短的IE浏览器判断代码 一文,看到只有6byte的判断ie与非ie的方法。其代码如下:
if(!+[1,])alert("这是ie浏览器");
else alert("这不是ie浏览器");
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
其实有很多判断的方法,大都是根据浏览器的特性来的。
比如库prototype的方法是:!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 。就是根据ie支持window.attachEvent添加侦听事件,非ie用window.addEventListener添加侦听事件来判断的。navigator.userAgent.indexOf('Opera') === -1是因为opara浏览器能伪装成ie.如果!!(window.attachEvent )为真,就是ie;反之,如果!window.addEventListener为真,也可以判断为ie.
Ext使用的是!"1"[0],他利用IE无法使用数组下标访问字符串的特性来判断。在ie8下好像有问题。
在!+[1,]还未被发现前,判断ie最短的表达式是 !+"\v1".它利用的是ie不支持垂直制表符的特性。
以前还有一个常用方法是document.all,由于opera浏览器能伪装成ie。可以这样写:!!(document.all && navigator.userAgent.indexOf('Opera') === -1).
还有很多,先记这几条,便于工作时查阅。
1.+[1,]
2.!+"\v1"
3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1)
4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1)
5.!!(document.all && navigator.userAgent.indexOf('Opera') === -1)
相关推荐
-
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引擎会
-
JavaScript中一个奇葩的IE浏览器判断方法
记得在网上Down的很多源码用的最多的一种方式就是: 复制代码 代码如下: var ie = document.all(); 这是因为IE浏览器的document下有all方法,而所谓的标准浏览器却没有,所以很长的一段时间,这个是一种非常普遍的方法.在之后大家开始追求起简短,就像在这之后一度流行的一种方法: 复制代码 代码如下: var ie = ! + "\v1"; 这个是利用IE不支持垂直制表符的特性而判别的,仅仅7个字符已经很让人震惊了,可是这个记录被一个俄国人在今年早些的时候打
-
用js判断用户浏览器是否是XP SP2的IE6
由于Windows XP的补丁SP2,对IE6的安全性也做了很多的提升,使得有不少原来我们可以使用的功能,会变得很奇怪甚至歇菜掉:(.特别是弹出窗口.模态窗口和Popup窗口等受的影响相当大.那么我能不能判断用户使用的IE6是普通IE6(IE6sp1)还是IE6+xp sp2呢? 下面是两个比较典型的IE6浏览器UserAgent字段: 1.Windows XP + SP1 (NT 5.1) Connection: Keep-Alive Accept: */* Accept-Encoding:
-
js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本
因为ie10-ie11的版本问题,不再支持document.all判断,所以ie判断函数要重新写了 function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false; } 第一种,只区分浏览器,不考虑版本 复制代码 代码如下: function myBrowser(){ var userAgent = navigator.
-
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
现在的浏览器大概有好几种,各个人的喜好也不同,所以也就用着不同的浏览器!我们开发的人来说经常要加个判断,要不可能某些功能没法正常使用.要是没加个判断就会给大家带来些麻烦!虽然可能大家的喜好不同!用的系统也不同!有人喜欢用ie, firefox,还有人喜欢用腾讯tt,maxthon等等.虽然名字可能有很多种,但是内核我们知道下就没问题了.如IE内核的:IE,maxthon,tt都是.当然还有netscape内核!看大家怎么去判断! 由于在开发时碰上这个问题.于是找了下资料和自己总结如下JS代码:
-
js判断IE浏览器版本过低示例代码
弄了个很简单的例子判断IE浏览器版本是否过低 例子结构如下,其实一个页面加引入jquery就可以了,顺便弄了个标准结构(注意在IE6和IE7版本较低情况下下才看到它的提示效果) 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <h
-
用js判断浏览器是否是IE的比较好的办法
一般常用方法是document.all if(document.all){ //IE代码 }else{ //其他 } 其实这么做不够,document.all能区分出FireFox,却无法区分Opera,因为Opera支持document.all. 我现在的做法是: var isIE = document.all && window.external; ... Opera不支持window.external,所以这么做就比较保险了.
-
IE及IE6浏览器中判断JS文件加载成功失败的方法
浏览器的文件加载实际上是有非常纠结的兼容问题的.最近看到@lifesinger做了一个具体的总结.这里比较麻烦的是IE6~8不区分加载成功或失败,都走一个回调.在网上看了一种解决方案是,在加载文件的最后置一个全局变量或改变标签的属性来区分,这样成功与否就通过这个标志位判断.但显然不太完美,还要改加载文件. 后来尝试另一种思路,先创建一个vbscript,src置成一个JS文件,如这个文件加载正常,肯定会报错否则不会有反应.这样如果window.onerror捕获到错误了,说明文件有效,再正常加载
-
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
关键点:1.对浏览器版本的判断:2.修改样式表路径 其中第二点也常用在实时修改网页模板.论坛风格的场合,实际上就是修改样式表路径来加载不同的样式表. 代码: 复制代码 代码如下: <script type="text/javascript"> var browser=navigator.appName var b_version=navigator.appVersion var version=b_version.split(";"); try{ //代
-
js判断当前浏览器类型,判断IE浏览器方法
最短IE判断方法,原文地址: http://www.jb51.net/article/23621.htm 判断IE浏览器最短方法:var isIE = !-[1,] 原理:[1,]在标准浏览器中返回"1",相当于调用[1,].toString(),在IE中返回"1,"在这个时候对返回值使用负号强制转换为数字时,标准浏览器返回1,IE则返回NaN,再对1和NaN取反时,标准浏览器返回false,IE返回true. js判断浏览器类型 原文基本上没有什么问题,但他的判断
-
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
熟悉jq的朋友可能会偶尔用到判定当前浏览器是否为ie,甚至是具体到ie哪个版本.比如说判定当前浏览器是ie7 ,写法如下: if($.browser.msie && $.browser.version==7){ //ie7下执行该区域代码 } 原生js,仿jq写法,具体实现代码: <script> var browser = (function(){ var isIE6 = /msie 6/i.test(navigator.userAgent); var isIE7 = /ms
-
js判断浏览器类型为ie6时不执行
js判断浏览器类型 $.browser 对象$.browser.version 浏览器版本 复制代码 代码如下: var binfo = ''; if ($.browser.msie) { binfo = "Microsoft Internet Explorer " + $.browser.version; } else if ($.browser.mozilla) { binfo = "Mozilla Firefox " + $.browser.version;
-
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
今天在写一个代码复制功能的时候,发现的这个问题,ie11也不支持document.all,看来以后越来越标准了 今天碰到一个奇怪的问题,有一个页面,想指定用IE浏览器打开,在VS开发环境没有问题,但部署到服务器上,即使是用IE打开页面,还是提示"仅支持IE",真是晕啊!! 判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userAgent里是没有MSIE标志的,原因就是
-
ExtJS判断IE浏览器类型的方法
代码在ext里的src\core\ext.js下 最新的ext3.0beat1的代码如下: 复制代码 代码如下: ua = navigator.userAgent.toLowerCase(), check = function(r){ return r.test(ua); }, isStrict = document.compatMode == "CSS1Compat", isOpera = check(/opera/), isChrome = check(/chrome/), isW
随机推荐
- 利用AOP实现SqlSugar自动事务
- vpn连接程序hta版实现代码(修改)
- 14个有用的Jquery技巧分享
- WMI StdRegProv 通过wmi操作注册表的vbscript实现代码 (本地或远程)
- ASP.NET 跨页面传值方法
- php IP转换整形(ip2long)的详解
- Linux 下java jps命令使用解析详解
- C++中的移动构造函数及move语句示例详解
- PHP获取某个月最大天数(最后一天)的方法
- php使用codebase生成随机数
- javascript模拟实现ajax加载框实例
- 修复ie8&chrome下window的resize事件多次执行
- BootStrap响应式导航条实例介绍
- Mysql5.7.11绿色版安装教程图文详解
- MySQL 5.6 GTID新特性实践
- Java加密解密工具(适用于JavaSE/JavaEE/Android)
- c++11新增的便利算法实例分析
- jquery select操作的日期联动实现代码
- svg动画之动态描边效果
- JavaScript实现图片无缝滚动效果