码迷,mamicode.com
首页 > 其他好文 > 详细

BOM学习3--navigator对象跨浏览器检测插件

时间:2018-01-10 14:04:08      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:使用权   catch   ie浏览器   --   bom   net   就是   ide   目的   

一,检测插件:

  随着互联网的发展,HTML5的标准也成为开发网页的标准,其中比如H5的video标签,就可以直接嵌入到网页成为一个播放器,这就把传统的Flash播放器的功能给取代了。我们在开发不同的项目,可能会依据项目的不同需求,选择使用H5播放器或者Flash插件,这就需要我们在浏览器中识别安装的插件,下面就是一个跨浏览器的插件检测方法:

  1,对于非IE浏览器,我们可以直接使用plugins这个数组来遍历插件,下面是数组每一项包含的属性:

    name: 插件的名字,

    description:插件的描述,

    filename:插件的文件名,

    length:插件所处理的MIME类型数量

  

 1  //检测浏览器的插件 (非IE)
 2     function hasPlugin(name) {
 3         name = name.toLowerCase();   //小写
 4         for(let i=0;i< navigator.plugins.length;i++){
 5             if(navigator.plugins[i].name.toLowerCase().indexOf(name) > -1){
 6                 return true;
 7             }
 8         }
 9         return false;
10     }
11     console.log(‘flash:‘+ hasPlugin(‘flash‘), ‘QuickTime:‘+ hasPlugin(‘QuickTime‘));   

  注意:现在很多的浏览器比如Chrome浏览器都是默认不启用Flash插件的,所以即使在浏览器中安装了Flash插件,如果不手动给予使用权限,那么也是照样访问不到的。

 

  2,对于IE插件比较麻烦,因为IE浏览器不支持Netscape式的插件,在IE中检测插件的唯一方式就是使用专有的ActiveXObject类型,IE中每个插件都有一个唯一的标识符,所以代码如下:

 1   //IE浏览器的插件检测
 2     function hasIEPlugin(name) {
 3         try{
 4             new ActiveXObject(name);
 5             return true;
 6         }catch (ex){
 7             return false
 8             ;
 9         }
10     }

  注意:IE浏览器中默认是使用Flash的,所以不需要手动选择权限。

  

  3,跨浏览器的插件检测,下面就以检测Flash插件为例:

 

1 //跨浏览器检测插件
2     function hasFlash() {
3         let result = hasPlugin(‘flash‘);
4         if(!result){
5             result = hasIEPlugin(‘ShockwaveFlash.ShockwaveFlash‘);
6         }
7         return result;
8     }

 

二,

BOM学习3--navigator对象跨浏览器检测插件

标签:使用权   catch   ie浏览器   --   bom   net   就是   ide   目的   

原文地址:https://www.cnblogs.com/braveHead/p/8257575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!