浏览器检测

关于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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值