标签:支持 rip tor object ref case linux 产生 cas
由于每个浏览器都有自己独特的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤。虽然浏览器开发商在公共接
口方面投入了很多精力,努力的去支持最常用的公共功能;但在现实中,浏览器之间的差异,以及不同浏览器的“怪癖”
却是非常多的,因此客户端检测除了是一种补救措施,更是一种行之有效的开发策略。
一.navigator对象
appName: 完整的浏览器名称
navigator对象是window对象下的
alert(window.navigator); //[object Navigator]
alert(navigator.appName); //这个属性不能精确的取到浏览器名称
alert(navigator.userAgent); //浏览器用户代理字符串,表示浏览器信息的东西
alert(navigator.platform); //浏览器所在的系统
浏览器嗅探器:
是一段程序,有了它,浏览器检测就变得简单了。我们这里提供了一个browserdetect.js文件,用于判断浏览器的名称、
版本号及操作系统。
调用方式 说明
BrowserDetect.browser 浏览器的名称,例如Firefox,IE
BrowserDetect.version 浏览器的版本,比如7、11
BrowserDetect.OS 浏览器所宿主的操作系统,比如Windows、Linux
//给IE7以下的浏览器做特殊处理
if(BrowserDetect.browser==‘Internet Explorer‘ && BrowserDetect.version<7){
alert("需要做IE低版本的兼容!");
}
-------------------------------------
//插件检测
alert(navigator.plugins.length); //IE不支持
for(var i=0;i<navigator.plugins.length;i++){
document.write(‘插件名:‘+navigator.plugins[i].name+‘<br/>‘);
document.write(‘文件名:‘+navigator.plugins[i].filename+‘<br/>‘);
document.write(‘描 述:‘+navigator.plugins[i].description+‘<br/>‘);
document.write(‘<br/>‘);
}
//检测非IE浏览器插件是否存在
function hasPlugin(name){
var name=name.toLowerCase();
for(var i=0;i<navigator.plugins.length;i++){
if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1){
return true;
}
}
return false;
}
alert(hasPlugin(‘Flash‘));
//检测IE浏览器的控件
function hasIEPlugin(name) {
try{ //这里叫做尝试着去执行一段代码,如果有误,就去执行catch
new ActiveXObject(name); //这里的name必须是控件的唯一标识符ID
return true; //如果new成功了,没有产生错误,那么就不去执行catch
}catch(e){
return false; //如果new失败了,就执行catch里面的语句
}
}
alert(hasIEPlugin(‘ShockwaveFlash.ShockwaveFlash‘)); //传IE的唯一标识符
-----------------------------------------------------------------
//跨浏览器检测Flash是否存在
function hasPlugin(name){
var name=name.toLowerCase();
for(var i=0;i<navigator.plugins.length;i++){
if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1){
return true;
}
}
return false;
}
function hasIEPlugin(name) {
try{
new ActiveXObject(name);
return true;
}catch(e){
return false;
}
}
function hasFlash(){
//首先,先去检测非IE的浏览器
var result=hasPlugin(‘Flash‘); //如果返回true,说明检测到了,并且不是IE浏览器
if(!result) { //如果没有检测到,说明这个浏览器没有flash插件或者它可能是IE浏览器
result=hasIEPlugin(‘ShockwaveFlash.ShockwaveFlash‘);
}
}
alert(hasFlash());
-----------------------------------------------------------------
//mime类型 IE浏览器不支持
-----------------------------------------------------------------------------------------------------------
-----------------------
二. 客户端检测:分为:能力检测、怪癖检测和用户代理检测
能力检测:
var width=window.innerWidth;
if(typeof width!=‘number‘){
width=document.documentElement.clientWidth;
}
alert(width);
另外一种写法是检查是不是标准模式
怪癖检测:bug(缺陷)
var box={
toString:function(){}, //IE的小BUG toString和原型重名了,就不打印了
toString2:function(){}
};
for(var o in box){
alert(o);
}
//用户代理字符串
document.write(navigation.userAgent);
标签:支持 rip tor object ref case linux 产生 cas
原文地址:http://www.cnblogs.com/gengxinnihaoma/p/7380783.html