BOM學習3--navigator對象跨瀏覽器檢測插件

一,檢測插件:數組

  隨着互聯網的發展,HTML5的標準也成爲開發網頁的標準,其中好比H5的video標籤,就能夠直接嵌入到網頁成爲一個播放器,這就把傳統的Flash播放器的功能給取代了。咱們在開發不一樣的項目,可能會依據項目的不一樣需求,選擇使用H5播放器或者Flash插件,這就須要咱們在瀏覽器中識別安裝的插件,下面就是一個跨瀏覽器的插件檢測方法:瀏覽器

  1,對於非IE瀏覽器,咱們能夠直接使用plugins這個數組來遍歷插件,下面是數組每一項包含的屬性:ide

    name: 插件的名字,ui

    description:插件的描述,spa

    filename:插件的文件名,插件

    length:插件所處理的MIME類型數量code

  

 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插件,若是不手動給予使用權限,那麼也是照樣訪問不到的。blog

 

  2,對於IE插件比較麻煩,由於IE瀏覽器不支持Netscape式的插件,在IE中檢測插件的惟一方式就是使用專有的ActiveXObject類型,IE中每一個插件都有一個惟一的標識符,因此代碼以下:ip

 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     }

 

二,

相關文章
相關標籤/搜索