DOMParser()。parseFromString()没有使用Firefox

时间:2015-09-29 09:58:08

标签: javascript firefox firefox-addon domparser

我构建了一个chrome扩展程序,一切运行良好。 现在我需要把它放在Firefox上,这是一个混乱。

问题在于dom解析。

她的代码在FF上不起作用:

var parser = new DOMParser();
SOURCE_DOM = parser.parseFromString(data.url, "text/html");

SOURCE_DOM始终将对象返回为空:

Object : {location : null}

在Chrome上没有问题,它给了我文档对象,我可以正常使用它。但是在扩展构建方面,与Chrome相比,Firefox是一种痛苦。

有人会知道如何获取文件吗?

1 个答案:

答案 0 :(得分:0)

使用以下代码

if (window.DOMParser) {
    var parser=new window.DOMParser();
    var parsererrorNS = null;
    // IE9+ now is here
    if(!isIEParser) {
        try {
            parsererrorNS = parser.parseFromString("INVALID", "text/xml").getElementsByTagName("parsererror")[0].namespaceURI;
        }
        catch(err) {
            parsererrorNS = null;
        }
    }
    try {
        xmlDoc = parser.parseFromString( xmlDocStr, "text/xml" );
        if( parsererrorNS!= null && xmlDoc.getElementsByTagNameNS(parsererrorNS, "parsererror").length > 0) {
            //throw new Error('Error parsing XML: '+xmlDocStr);
            xmlDoc = null;
        }
    }
    catch(err) {
        xmlDoc = null;
    }
} else {
    // IE :(
    if(xmlDocStr.indexOf("<?")==0) {
        xmlDocStr = xmlDocStr.substr( xmlDocStr.indexOf("?>") + 2 );
    }
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.loadXML(xmlDocStr);
}