zoukankan      html  css  js  c++  java
  • 【转】javascript检测浏览器插件

    转:https://www.cnblogs.com/nangua/archive/2011/07/23/2114849.html

    检测浏览器中是否安装了特定的插件,对于非IE的浏览器,可以使用plugins数组检测浏览器安装插件的情况:

    plugins属性:

    • name:插件的名称
    • description:插件的描述
    • filename:插件的文件名
    • length:插件所处理的MIME类型数量

    使用plugins检测浏览器插件时,需要循环迭代plugins在中的每一个插件并将插件的name与给定的名称比较

    //检测非IE浏览器中的插件
    function hasPlugin(name){
          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;
    }
    //检测flash
    alert(hasPlug("flash"));

      检测IE中的插件就比较麻烦了,因为IE不支持Netscape式的插件,因此检测IE中的插件只能使用ActiveXObject类型,IE是以COM对象的方式实现插件的,而COM对象使用唯一标识符来标识,因此要检测IE中的插件就必须知道其COM标识符。

    //检测IE中的插件
    function hasPlugin(name){
          try{
                new ActiveXObject(name);
                return true;
          }catch(ex){
                return false;
          }
    }
    //检测flash,flash的标识符:ShockwaveFlash.ShockwaveFlash
    alert(hasPlug("ShockwaveFlash.ShockwaveFlash"));

      要检测所有的浏览器中的插件,将以上两个方法整合就可以了。

  • 相关阅读:
    setTimeout详解
    【康娜的线段树】
    【[CQOI2016]手机号码】
    【[IOI2014]Wall 砖墙】
    【[1007]梦美与线段树】
    【[POI2010]ANT-Antisymmetry】
    【[HEOI2016/TJOI2016]排序】
    【[SCOI2016]背单词】
    【[HNOI2008]GT考试】
    【[JSOI2007]建筑抢修】
  • 原文地址:https://www.cnblogs.com/guxingzhe/p/15107129.html
Copyright © 2011-2022 走看看