我构建了一个chrome扩展程序,一切运行良好。 现在我需要把它放在Firefox上,这是一个混乱。
问题在于dom解析。
她的代码在FF上不起作用:
var parser = new DOMParser();
SOURCE_DOM = parser.parseFromString(data.url, "text/html");
SOURCE_DOM始终将对象返回为空:
Object : {location : null}
在Chrome上没有问题,它给了我文档对象,我可以正常使用它。但是在扩展构建方面,与Chrome相比,Firefox是一种痛苦。
有人会知道如何获取文件吗?
答案 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);
}