如何检测客户端浏览器中是否启用了ActiveX?
我尝试了以下代码,但在Firefox中无法工作。
window.ActiveXObject not working in Firefox
有什么想法吗?
在这里检查示例: http://jsfiddle.net/qXSvQ/2/
当我运行这个示例时,我得到false
。
如何检测客户端浏览器中是否启用了ActiveX?
我尝试了以下代码,但在Firefox中无法工作。
window.ActiveXObject not working in Firefox
有什么想法吗?
在这里检查示例: http://jsfiddle.net/qXSvQ/2/
当我运行这个示例时,我得到false
。
ActiveX对象只存在于Internet Explorer中。如果您想要使用它们进行XMLHTTP请求,请改用XMLHTTPRequest()对象,使用特性检测。
if ("ActiveXObject" in window) { /* Do ActiveX Stuff */ }
else { /* ActiveX doesnt exist, use something else */ }
var hasAX = "ActiveXObject" in window;
false
。在FireFox和Chrome中测试实际代码,它正确地返回了false
。答案中是否有遗漏的内容? - Ian Boyd以下代码应该可以运行,在IE6和FF 3.6.12至少可以运行。
if(typeof(window.ActiveXObject)=="undefined"){
alert("ActiveX Object not supported");
}else {
alert("ActiveX Object supported");
}
undefined
。如果你期望FF支持其他内容,也许你指的不是ActiveX? - Andrzej Doylewindow.ActiveXObject
属性,我仍然会坚持@MPD的答案,因为它显示了正确的值。 - Juan Carlos Alpizar Chinchilla看起来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设置为默认浏览器并启用“更多工具”中的Internet Explorer模式重新加载,则支持ActiveX:
edge://settings/defaultBrowser
Gerolf