如何检测客户端浏览器中是否启用了ActiveX?
我尝试使用代码,但它在Firefox中无效。
window.ActiveXObject not working in Firefox
任何想法?
查看此处的示例:http://jsfiddle.net/qXSvQ/2/
运行此示例时,我得到false
。
答案 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
狼人