2

Firebug 给我以下错误:

ActiveXObject is not defined
[Break on this error] var xmlhttp = new ActiveXObject("MSXML2.XmlHttp"); 

我读过 ActiveX 是一个 Microsoft 框架,主要用于 IE。我工作的地方的所有内部网页都是专门为 IE 6 设计和构建的,但现在他们希望我研究迁移到 Firefox 和 Safari 以及其他主要浏览器需要什么……而 ActiveX 在火狐。

那么如何让 ActiveX 的东西在 Firefox 和 Safari 中特别是在 Mac 上工作(对于初学者)?我知道有几个插件?这让事情变得更容易......就像FF ActiveX Host......但是有一个编程解决方案吗?

如果没有解决方案,没有插件,对于这个问题,是否可以用 Java 重写 ActiveX 部分?

4

2 回答 2

5

我不是网络人,但您的网页似乎使用 AJAX。

所以你的问题是没有在其他浏览器中使用 AcitveX。

尝试这样的事情:

var xmlhttp;
if (window.XMLHttpRequest) {
  xmlhttp = new XMLHttpRequest();
} else {
  try { 
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try { 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
      xmlhttp = false; 
    }
  }
}
于 2010-06-24T02:40:31.740 回答
3

除了 IE 支持的几乎所有相关浏览器的 Plugin-API 都是NPAPI,参见例如这个介绍

我不知道任何用于适应 ActiveX 的透明编程解决方案,特别是因为它是一种仅限 Windows 的技术。

一个替代方案可能是FireBreath项目,它简化了使用 NPAPI 的工作,并为您提供了一个超过 NPAPI 和 ActiveX 的抽象层 - 其想法是您只需编写大部分核心部分一次。
免责声明:我是该项目的所有者之一,因此可能有偏见;)

于 2010-06-23T15:02:03.100 回答