使用js检测浏览器的实现代码
在编写跨浏览器js程序时,检测浏览器是一项非常重要的任务,我们必须为不同的浏览器编写分支代码。以下是一种:
复制代码代码如下所示:
添加事件工具函数
函数AddEvent(EL型手柄){
如果(EL。addEventListener){ / /标准浏览
El.addEventListener(类型、处理,假);
} else if(EL。attachevent){ / / IE
el.attachevent(+事件,处理);
}其他
+类型=句柄;
}
}
1、检测浏览器的第一方式称为用户代理检测。它是古老的,它发现目标浏览器的精确模型,包括名称和浏览器版本。事实上,它是一个字符串的navigator.useragen或navigator.appname.as得出如下:
复制代码代码如下所示:
功能议(){
返回navigator.appname.indexof(微软Internet Explorer)!= 1 document.all;
}
功能isie6(){
返回navigator.useragent.split(;)({ 1 }。toLowerCase)。IndexOf(MSIE 6)= =1假:真;
}
功能isie7(){
返回navigator.useragent.split(;)({ 1 }。toLowerCase)。IndexOf(MSIE 7)= =1假:真;
}
功能isie8(){
返回navigator.useragent.split(;)({ 1 }。toLowerCase)。IndexOf(MSIE 8)= =1假:真;
}
功能ISNN(){
返回navigator.useragent.indexof(网景)!= 1;
}
功能isopera(){
返回navigator.appname.indexof(歌剧)!= 1;
}
功能ISFF(){
返回navigator.useragent.indexof(火狐)!= 1;
}
功能ischrome(){
返回navigator.useragent.indexof(铬)> 1;
}
2、二是称为对象/特征检测,这是一种方式来判断浏览器的能力和受欢迎的方式。它是检测是否存在之前,用一个对象。这是使用上面提到的.. addEventListener AddEvent方法是W3C DOM的标准方式,和IE的使用独特的attachevent。以下是以下:
一、talbe.cells只支持IE /歌剧。
B,innerText / insertadjacenthtml支持IE6 / 7 / 8 / / /歌剧浏览器Safari浏览器除了Firefox。
C、window.external.addfavorite是用来添加到收藏在IE.
D、window.sidebar.addpanel是用来添加到收集器在FF。
3,第三是非常有趣的,它被称为浏览器缺陷或bug,也就是说,一些性能没有被浏览器厂商实现:
复制代码代码如下所示:
无功议=!;
无功议=!- { 1,}
无功议= V=V;
issafari = / /。__proto__ = = / /;
isopera =!window.opera;
最经典的是!- { 1 }目前判断最小代码的方式来判断IE的方式,只有6个字节,它是由俄罗斯发现。使用数组{ 1 }长度。和来自英国的年轻的James Padolsey使用IE条件注释
复制代码代码如下所示:
var =(函数(){())
VaR undef,
v=3,
div = document.createelement('div),
所有= div.getelementsbytagname(我);
而(
div.innerhtml =,
全部{ 0 }
);
V 4 V:undef返回>
}();
它被称为历史上最具创造性的工业判断。
注:1:议= V=VIE9已经固定的bug,你不能用这种方式来确定IE浏览器(2010-6-29 IE9 pre3试验)