`

利用javascript判断浏览器是否已经安装ActiveX控件和是否禁止运行ActiveX控件

    博客分类:
  • js
阅读更多
从微软给IE打上SP2以后,当IE在打开一些含有ActiveX控件的网页是,不再像以前那样,弹出提示框,让用户选择是否安装控件;现在默认情况下给隐藏起来,普通用户根本不知道是怎么回事。公司产品同样也遇到这样的问题,唯一的办法就是将控件做成一个exe文件,供用户下载手动安装注册;这样就需要做一个检测,检测要是用户没有安装控件的话就提示用户用户下载安装,要是安装了就直接转到相关页面。想了很多办法,最后找到一种比较合理的解决方式。由于我们现在经常使用的ajax技术,它实际上就是一种com组件,通过接口实现发送请求和获取数据,那么我们要使用ajax,就必定要创建这样一个com组件,所以我们可以从这里入手来解决检测普通控件是否被拦截的问题。

   javascript创建ActiveX控件方式如下:

function DetectActiveX()
{
    try
    {
       var comActiveX = new ActiveXObject(控件名称);  
    }
    catch(e)
    {
       return false;  
    }
    return true;
}

    只要控件已经安装,那么创建肯定会成功(如果IE设置为禁用ActiveX则会失败),如果控件没有安装则会失败。这是一种简单的检测方式。那么控件名称怎么知道呢?大家在写一个com组件的时候,都有一个对应的CLSID。打开自己的注册表(自己系统中已经安装了控件),在HKEY_CLASSESS_ROOT中查找,输入控件对应的CLSID,会在该目录下的一个叫CLSID的目录中找到对应控件的注册信息,打开该节点,其中有一项是ProgID,其对应的值就是创建该控件时所要用的名称,这样你就可以方便创建和检测你自己所设计的控件了。

       由于IE不允许javascript访问系统功能,所以我们不能够对IE的相关设置做一个直接的访问,那么根据我们上面的检测试试,我们可以轻松的判定IE是否禁止运行ActiveX控件,这也是非常有用的一点,因为很多提示我们可能要提示用户由于什么什么原因,而导致不能使用某项ActiveX控件的功能。那么我们如何来进行判断呢,还记得我刚开始提到的ajax这个东西吧,这个东西不仅能带来更好的用户交互功能,同时也能够用在我们检测浏览器是否禁止运行ActiveX 控件目的上来。因为ajax是由相关的com组件支持,不管是IE,Firefox,Netscape,Opera等其他浏览器,都有相应的实现,因为了是浏览器的标准。所以我们只要写一个通用的,支持各种浏览器创建ajax 所要用到的xmlhttp对象即可,如果能创建成功,那么证明IE一切OK,如果不成功则给出提示,其检测函数相信大家已经再熟悉不过了,只不过我们现在的目的不一样了,呵呵。

function DisActiveX()
   {
      //xmlhttp对象
      var kXmlHttp = null;   
      try
      {
         //非微软IE支持的xmlhttp对象
        if (typeof XMLHttpRequest != "undefined")
        {
           kXmlHttp = new XMLHttpRequest();
           return true;
        }    
      }
      catch(e)
      {  }
      //微软IE支持的xmlhttp对象
      var aVersionhs = ["MSXML2.XMLHttp.5.0",
          "MSXML2.XMLHttp.4.0",
          "MSXML2.XMLHttp.3.0",
          "MSXML2.XMLHttp",
          "Microsoft.XMLHttp"];
      //IE创建方式
      for (var i = 0; i < aVersionhs.length; i++)
      {     
         try
        {
           kXmlHttp = new ActiveXObject(aVersionhs[i]);
           return true;
        }
       catch(e)
        { }     
      }
    return false;
   }

   以上是在工作中的一些小经验,感觉挺实用的,和大家分享一下,我也是菜鸟一个,写不出来技术含量高的文章,但和大家分享便是一种快乐...
分享到:
评论

相关推荐

    Javascript判断是否有ActiveX控件的两种方法

    Javascript判断是否有ActiveX控件的两种方法,在网页中使用ActiveX控件的添加方法。

    ActiveX控件的使用与开发

    由于ActiveX控件的执行特性,它们可能成为恶意软件的载体,因此现代浏览器已经逐渐限制或禁用了ActiveX的支持。此外,ActiveX控件只在Windows系统中有效,对于跨平台应用,如在Mac或Linux上,ActiveX控件无法工作。 ...

    非ie内核浏览器activex支持插件

    部署时,用户需要安装插件,并可能需要手动启用或者调整浏览器设置以允许ActiveX控件运行。 6. **替代方案**:随着Web技术的发展,许多ActiveX的功能已经被HTML5、Web Components等现代Web技术取代。因此,在选择...

    网页中显示带控件的ActiveX控件

    当用户访问包含ActiveX控件的网页时,浏览器会下载并安装这些控件,然后在网页中运行。控件可以是任何类型的代码,如VBScript、C++或Java,它们可以直接与操作系统交互,提供比JavaScript等客户端脚本语言更强大的...

    在此页面上的activex控件和本页上的其他控件的交互可能不安全

    ActiveX控件通常以.DLL或.OCX文件形式存在,并且只能在Internet Explorer浏览器中运行,因为它是为Windows平台设计的。 ### 浏览器安全机制 为了保护用户的安全,现代浏览器实施了多种安全策略,其中最重要的是...

    chrome 浏览器加载activex

    综上所述,虽然Chrome浏览器不直接支持ActiveX,但通过一些特殊设置、扩展或企业策略,我们仍然可以在一定程度上实现在Chrome中加载和使用ActiveX控件。然而,这种做法应该谨慎,因为它可能会增加安全风险。在可能的...

    Activex\C#开发ActiveX控件,.NET开发OCX控件案例

    ### Activex\C#开发ActiveX控件,.NET开发OCX控件案例 #### 什么是ActiveX控件?...然而,对于那些仍然需要利用本地资源或进行复杂操作的应用场景,了解如何使用C#和.NET框架开发ActiveX控件仍然具有一定的价值。

    meadco scriptx activex控件安装包.zip

    6. **安全性考量**:由于ActiveX控件可能会带来安全风险,用户在安装时需谨慎,确保来源可信,并且安装后及时更新和维护,防止恶意代码利用。 总结,"meadco scriptx activex控件安装包.zip"是一个专为提升Web打印...

    C#编写activex控件

    在IT行业中,ActiveX控件是一种古老的但仍然在某些场景下使用的技术,它允许开发者创建可以在Web页面上运行的小型应用程序或组件。ActiveX技术基于COM(Component Object Model)架构,通常由VB(Visual Basic)或...

    VC ActiveX控件的开发详细步骤说明

    在 JS 界面和 ActiveX 控件之间的相互通信中,我们使用 JavaScript 语言来调用 ActiveX 控件的方法。在本例中,我们使用 JavaScript 代码来调用 Init 方法和 DisplayMsgOnBrowser 方法。 五、调试步骤 在调试时,...

    ActiveX控件做的时钟

    在现代浏览器中,由于安全考虑,ActiveX控件的支持已经大大减少,更多的是通过JavaScript和HTML5的新特性来实现类似功能。 5. **注册和使用**:开发完成后,需要将ActiveX控件注册到用户的系统中,以便在支持的程序...

    ActiveX控件下载 官方版

    ActiveX控件是微软开发的一种技术,主要用于在Internet Explorer浏览器中增强网页的交互性和功能。它是一种小型、可重用的软件组件,基于COM(Component Object Model)模型,允许开发者集成各种功能,如媒体播放、...

    VC++ Activex控件开发

    VC++ ActiveX控件开发是Windows应用程序开发中的一个重要部分,主要涉及的是利用...尽管现代技术已经对此有所替代,但了解和掌握ActiveX控件的开发仍然是对历史技术的一种学习,也有助于理解组件化编程的原理。

    ActiveX控件的创建和应用

    应用ActiveX控件通常有两种方式:一是嵌入到网页中,用户通过IE浏览器访问网页时,如果安装了对应的ActiveX控件,就能在浏览器中看到并交互;二是作为桌面应用程序的一部分,通过OLE嵌入或者拖放到Visual Studio等...

    IE一键设置脚本ActiveX控件常规允许工具

    在互联网早期,ActiveX控件是Microsoft Internet Explorer(IE)浏览器中一种重要的技术,用于提供丰富的交互性和功能扩展。ActiveX控件是由软件开发者创建的小型应用程序,可以在网页上运行,为用户提供额外的功能...

    ACTIVEX控件:tree control与Microsoft web浏览器的综合应用

    本文将深入探讨ACTIVEX控件中的Tree Control与Microsoft Web浏览器的综合应用,帮助开发者理解如何利用这些技术提升网页的用户体验。 Tree Control是一种图形用户界面(GUI)元素,它以树状结构展示数据,允许用户...

    网页向ActiveX控件传递参数(C++ 的ocx)

    在互联网的早期,ActiveX控件是微软推出的一种技术,允许网页嵌入并运行客户端的交互式组件。这些控件通常由C++编写,并以OCX(OLE Control Extension)的形式存在,可以提供丰富的用户界面和功能。在网页中,通过...

    C#开发ActiveX控件

    值得注意的是,由于ActiveX控件主要与IE浏览器兼容,随着现代浏览器对ActiveX的支持逐渐减少,开发人员应考虑使用更现代的技术如Web Components、JavaScript库或WebAssembly来替代ActiveX,以实现跨平台的网页交互...

    WINCE和WIN32下开发IE的ActiveX控件

    这样,当网页使用了未经签署的ActiveX控件时,浏览器将提示用户是否安装该控件。 - **安装控件** 选择“安装”,并等待一段时间让ActiveX控件安装完成。 #### 三、CLSID & GUID - **类信息(CLSID)** 每个...

Global site tag (gtag.js) - Google Analytics