js ie非ie浏览器的几种判断方法小结_javascript技巧
程序员文章站
2022-05-01 15:03:31
...
最近在 司徒正美js 全世界最短的IE浏览器判断代码 一文,看到只有6byte的判断ie与非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)
[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)
推荐阅读
-
IE中JS跳转丢失referrer问题的2个解决方法_javascript技巧
-
js判断IE6/IE7/FF的代码[XMLHttpRequest]_javascript技巧
-
IE iframe的onload方法分析小结_javascript技巧
-
IE浏览器中图片onload事件无效的解决方法_javascript技巧
-
js判断ie方法集锦(含正则)代码短小经典[原创]_javascript技巧
-
用JS判断IE版本的代码 超管用!_javascript技巧
-
js判断浏览器类型为ie6时不执行_javascript技巧
-
为非IE浏览器添加mouseenter,mouseleave事件的实现代码_javascript技巧
-
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结_javascript技巧
-
统一接口:为FireFox添加IE的方法和属性的js代码_javascript技巧