DOMParser()。parseFromString()没有给Firefox做出响应

问题描述 投票:1回答:1

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

问题在于dom解析。

她的代码不适用于FF:

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

SOURCE_DOM始终返回一个空对象:

Object : {location : null}

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

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

javascript firefox firefox-addon domparser
1个回答
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.