如何检测客户端浏览器中是否启用了ActiveX?

时间:2010-11-30 11:56:31

标签: javascript activex

如何检测客户端浏览器中是否启用了ActiveX?

我尝试使用代码,但它在Firefox中无效。

window.ActiveXObject not working in Firefox

任何想法?

查看此处的示例:http://jsfiddle.net/qXSvQ/2/

运行此示例时,我得到false

4 个答案:

答案 0 :(得分:24)

除了Internet Explorer之外,其他任何内容都不存在ActiveX对象。如果您尝试将它们用于XMLHTTPRequests,请使用XMLHTTPRequest()对象,而不是使用特征检测。

if ("ActiveXObject" in window) { /* Do ActiveX Stuff */ }
else { /* ActiveX doesnt exist, use something else */ }

答案 1 :(得分:8)

下面的代码应该可行,它正在开发IE6& FF 3.6.12 atleast。

if(typeof(window.ActiveXObject)=="undefined"){
    alert("ActiveX Object not supported");
}else {
    alert("ActiveX Object  supported");
}

答案 2 :(得分:7)

什么不起作用?这会在FF中引发错误吗? <怎么样

var hasAX = "ActiveXObject" in window;

答案 3 :(得分:1)

似乎Firefox只是跳过了包含ActiveX对象的脚本:

<script><!--
  var activeXsupport = "ActiveX not supported";
// --></script>

<script><!--
  var dummy = new ActiveXObject ('WScript.Shell');
  activeXsupport = "ActiveX supported";
// --></script>

<script><!--
  alert (activeXsupport);
// --></script>    

因此,这使我在IE11上“受支持”而在Firefox上“不受支持”。

[编辑:]由于如果使用[F12]打开控制台,它也会在Firefox上引发错误消息,因此我建议进行以下改进:

<script><!--   
  var dummy = ''; var hasActiveX = false;  
  try {dummy = new ActiveXObject ('WScript.Shell'); hasActiveX = true;}
  catch (err) {dummy = ''; hasActiveX = false;}
  alert ('hasActiveX = ' + hasActiveX);
// --></script>   

如果将Edge Chromium设置为ActiveX的默认浏览器,并且启用了通过“更多工具”以Internet Explorer模式重新加载的功能,则支持ActiveX:

edge://settings/defaultBrowser 

狼人