8

Chrome で「Uncaught ReferenceError: ActiveXObject is not defined」というエラーが発生しました

私のコードは

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 に答える