您的位置:首页 > 其它

浏览器检测

2016-03-17 19:55 387 查看
关于navigator

navigator对象是window对象下的,使用navigator对象的一些属性可以获得浏览器的一些信息,常用的属性如下:

alert(navigator.appName); //可以获得浏览器的名称,但是此属性不能的浏览器的名称

alert(navigator.userAgent); // 可以获得浏览器的用户代理,表示浏览器信息的东西

alert(navigator.platform); //可以获得浏览器所在的系统

插件检测

//插件检测
for(var i = 0;i<navigator.plugins.length;i++){
document.write('插件名:'+navigator.plugins[i].name+'</br>');
//plugins[]是一个plugin对象的数组,里面的元素代表浏览器已安装的插件
document.write('文件名:'+navigator.plugins[i].filename+'</br>');
document.write('</br>');

}


检测非IE浏览器插件是否存在

//其实就是检测插件里面有没有Flash这个字符串
funcation hasPlugins(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;      //indexOf()返回的是某个指定字符串值在字符串中首次出现的位置,如果要检索的字符串值没有出现,则该方法返回 -1,且区分大小写
}
}
return false;
}
alert(hasPlugins('Flash'));


检测IE浏览器的控件

function hasIEPlugins(name){
try{     //尝试着执行一段代码,如果,就去执行catch
new ActiveXObject(name);   //这里的name必须控件的标识符ID
return true;
}catch(e){
return false;
}
}
alert(hasIEPlugins('ShockwaveFlash.ShockwaveFlash'));


跨浏览器检测Flash插件是否存在

function hasPlugins (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 hasIEPlugins(name){
try{
new ActiveXObject(name)
return true;
}catch(e){
return false;
}
}

function hasFlash () {
//先去检测非IE的浏览器
var result = hasPlugins('Flash');  //如果返回true ,说明检测到了,并且不是IE浏览器
if(!result){                //如果没有检测到,说明这个浏览器没有Flash插件,或者它是IE浏览器
result=hasIEPlugins('ShockwaveFlash.ShockwaveFlash');
}
return result;
}
alert(hasFlash());


获取各种浏览器引擎,浏览器名称,浏览器版本以及系统 的信息(代码可能有误)

var client = function (){      //创建一个对象
//引擎
var engine={
ie:false,
gecko:false,
webkit:false,
khtml:false,
opera:false,
//引擎的版本
ver:0
};
//浏览器
var browser={
ie:false,
firefox:false,
chrome:false,
safari:false,
opera:false,
//浏览器的版本号
ver:0,
// 浏览器的通用名称
name:''
};

//系统
var system={
win:false,
mac:false,
x11:false,
//系统名称
sysname:''

};

//核心检测程序
var ua = navigator.userAgent;
var p = navigator.platform;
if(p.indexOf('Win')==0){
system.win = true;
system.sysname='Windows';
}else if(p.indexOf('Mac')==0){
system.mac = true;
system.sysname = 'Macintosh';
}else if(p=='X11'|| p.indexOf('Linux')==0){
system.x11 = true;
system.sysname = 'Linux';
}

if(window.opera){
engine.opera = browser.opera = true;   //表示确定opera引擎
engine.ver = browser.ver = window.opera.version();
browser.name = 'Opera';
}else if (/AppleWebKit\/(\S+))/.test(ua)) {
engine.webkit = true;         //表示确定webkit引擎   AppleWebkit\/(\S+)
engine.ver = RegExp['$1'];
if(/ Chrome\/(\S+)/.test(ua)){
browser.chrome = true;
browser.ver = RegExp['$1'];
browser.name = 'Chrome';
}else{
browser.safari = true;
if(/Version\/(\S+)/test(ua)){
browser.ver = RegExp['$1'];
}
browser.name = 'Safari';
}
}else if(/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)){
engine.gecko = true;     //表示确定gecko引擎
engine.ver = RegExp['$1'];
if(/Firefox\/(\S+)/test(ua)){
browser.firefox = true;
browser.ver = RegExp['$1'];
browser.name = 'Firefox';
}
}else if(/Trident\/([^;])/.test(ua){
engine.ie = browser.ie = true;
engine.ver = browser.ver = RegExp['$1'];
browser.name = 'Internet Explorer';

}
return{
engine:engine ,   //前面一个engine是属性,后一个engine是对象
browser:browser,
system:system
}
}(); //自我执行

alert(client.system.sysname+'|' +client.browser.name + client.browser.ver);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: