【问题标题】:Uncaught ReferenceError: ActiveXObject is not defined Error in Chrome未捕获的 ReferenceError: ActiveXObject 未定义 Chrome 中的错误
【发布时间】:2013-07-29 14:45:08
【问题描述】:

我在 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) {......................

【问题讨论】:

标签: javascript asp.net google-chrome


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    正如其他人所说,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); 
    } 
    

    【讨论】:

    • 然后它给出了这个错误“Object # has no method 'loadXML'”
    • Chrome 不应该尝试使用 loadXML 调用,因为那是 IE 路径;你确定你清除了 JavaScript 的缓存版本吗?
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      • 2022-07-21
      • 1970-01-01
      • 2014-10-21
      • 2023-03-04
      相关资源
      最近更新 更多