Safari无法使用Microsoft.XMLDOM ActiveX对象

Nat*_*pos 1 javascript xml safari mobile-safari

我正在设计一个客户端脚本,它将读取XML文件并显示它,如下所示:

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

function loadXML(xmlFile) {
    xmlDoc.async = "false";
    xmlDoc.onreadystatechange = verify;
    xmlDoc.load(xmlFile);
}

function verify() {
    if(xmlDoc.readyState != 4) {
        return false;
    }
}

function traverse(tree) {
    if(tree.hasChildNodes()) {
        document.write('<ul><li>');
        document.write('<b>' + tree.tagName + ': </b>');
        var nodes = tree.childNodes.length;

        for(var i = 0; i < tree.childNodes.length; i++) {
            traverse(tree.childNodes(i));
        }
        document.write('</il></ul>');
    } else {
        document.write(tree.text);
    }
}

function initTraverse(file) {
    loadXML(file);
    var doc = xmlDoc.documentElement;
    traverse(doc);
}
Run Code Online (Sandbox Code Playgroud)

当我解雇Safari时,我看到没有显示任何内容,然后我打开了错误控制台,我得到的是:

ReferenceError:找不到变量:ActiveXObject

我应该怎么做才能使这项工作?

PS:我希望这个页面能够在Mobile Safari上运行

Ray*_*nos 5

ActiveXObject在Internet Explorer之外不起作用.

有一些替代的xml解析器和处理程序,如E4X.虽然E4X目前只在firefox中完成(https://developer.mozilla.org/En/E4X/Processing_XML_with_E4X).

如果使用jQuery是一个选项,那么你可以查看marcgrabanski.com/articles/jquery-makes-parsing-xml-easy