【发布时间】:2020-11-11 22:56:37
【问题描述】:
如何检测客户端浏览器是否启用了ActiveX?
我尝试了以下代码,但它在 Firefox 中不起作用。
window.ActiveXObject not working in Firefox
有什么想法吗?
在此处查看示例:http://jsfiddle.net/qXSvQ/2/
当我运行这个示例时,我得到了false。
【问题讨论】:
标签: javascript activex
如何检测客户端浏览器是否启用了ActiveX?
我尝试了以下代码,但它在 Firefox 中不起作用。
window.ActiveXObject not working in Firefox
有什么想法吗?
在此处查看示例:http://jsfiddle.net/qXSvQ/2/
当我运行这个示例时,我得到了false。
【问题讨论】:
标签: javascript activex
ActiveX 对象只存在于 Internet Explorer 中。如果您尝试将它们用于 XMLHTTPRequests,请改用 XMLHTTPRequest() 对象,使用特征检测。
if ("ActiveXObject" in window) { /* Do ActiveX Stuff */ }
else { /* ActiveX doesnt exist, use something else */ }
【讨论】:
什么不工作?这会在FF中引发错误吗?怎么样
var hasAX = "ActiveXObject" in window;
【讨论】:
false。在 FireFox 和 Chrome 中测试实际代码,它正确返回 false。答案中是否缺少某些内容?
下面的代码应该可以工作,它至少在 IE6 和 FF 3.6.12 上工作。
if(typeof(window.ActiveXObject)=="undefined"){
alert("ActiveX Object not supported");
}else {
alert("ActiveX Object supported");
}
【讨论】:
IE 中工作正常,但在 Firefox 中它是未定义的。我已经检查过FF 3.6.12 和FF 4.0b7。
undefined。如果您希望 FF 支持它,也许您的意思不是 ActiveX?
似乎 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 上“不支持”。
[Edit:] 因为如果使用 [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
杰罗夫
【讨论】: