zoukankan      html  css  js  c++  java
  • JS 检测浏览器中是否安装了特定的插件

    1、检测非IE浏览器

      可以使用plugins数组来达到这个目的,例:

     1  //检测插件(在IE中无效)
     2     function hasPlugin(name){
     3         name = name.toLowerCase();
     4         for(var i=0;i<navigator.plugins.length;i++)
     5         {
     6             if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1)
     7             {
     8                 return true;
     9             }
    10         }
    11         return false;
    12     }
    13     //检测Flash
    14     alert(hasPlugin("Flash"));

    2、检测IE浏览器

      因为IE不支持Netscape式的插件。在IE中检测插件唯一的方式就是使用专有的ActiveXObject类型,并尝试创建一个特定插件的实例。IE是以COM对象的方式使用插件的,而COM对象使用唯一标识符来标识。因此,要检查特定的插件就必须知道其特定的标识符。如Flash的标识符是ShockwaveFlash.ShockwaveFlash。

     1 //检测IE中的插件
     2     function hasIEPlugin(name)
     3     {
     4         //用try-catch进行实例化,因为创建未知的COM对象会导致抛出错误,如果实例化成功返回true,否则抛出异常返回false
     5         try {
     6             new ActiveXObject(name);
     7             return true;
     8         } catch (ex) {
     9             return false;
    10         }
    11     }
    12     //根据Flash标识符,检测Flash插件
    13     alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));

    3、检测所有浏览器

      先使用不针对IE的检测插件的方法,再使用针对IE的检测插件的方法,只要任何一个方法检测到将会返回true,否则返回false。

     1 //检测所有浏览器中的Flash
     2     function hasFlash()
     3     {
     4         var result = hasPlugin("Flash");//先检测非IE浏览器
     5         if(!result)
     6         {
     7             result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");//再检测IE
     8         }
     9         return result;
    10     }
    11     //检测Flash
    12     alert(hasFlash());
  • 相关阅读:
    类似-Xms、-Xmn这些参数的含义:
    类似-Xms、-Xmn这些参数的含义:
    类似-Xms、-Xmn这些参数的含义:
    类似-Xms、-Xmn这些参数的含义:
    Java 虚拟机是如何判定两个 Java 类是相同的?
    Java 虚拟机是如何判定两个 Java 类是相同的?
    Java 虚拟机是如何判定两个 Java 类是相同的?
    Java 虚拟机是如何判定两个 Java 类是相同的?
    互联网支付系统整体架构详解
    DTO
  • 原文地址:https://www.cnblogs.com/lijianda/p/7095624.html
Copyright © 2011-2022 走看看