8

我在 Chrome 中出现此错误“未捕获的 ReferenceError:未定义 ActiveXObject”

我的代码是

function loadModel() {

            //----------------------------------------------------------------------------------------------
            document.getElementById("lModelMsg").innerText = "Loading...";
            document.getElementById("lPartMsg").innerText = "";
            var dMfg = document.getElementById("dManufacturer");
            var id = dMfg.options[dMfg.selectedIndex].value;
            var xml = CreateAsset.LoadModel(id);
            var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            var Flag;
            Flag = xmlDoc.loadXML(xml.value);
            if (Flag) {......................
4

3 回答 3

5

ActiveX 是 Microsoft 专有的框架。仅在 MS 产品(即 IE)中受支持

您可以使用jQuery 的 parseXML方法作为跨浏览器的替代方法。

于 2013-07-29T14:56:42.950 回答
5

正如其他人所说,ActiveX 是一种特定于 IE 的技术。

尝试这个:

if (window.DOMParser)
{ // Firefox, Chrome, Opera, etc.
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(xml,"text/xml");
}
else // Internet Explorer
{
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(xml); 
} 
于 2013-07-29T15:01:15.960 回答
1

问题是浏览器的安全设置阻止了它。

如果您尝试 IE6,代码应该可以工作。您必须使用死浏览器,因为新浏览器阻止它作为 Microsoft 为解决安全问题而进行的 killbit 修复的一部分工作。

于 2013-11-08T11:53:41.143 回答