Javascript ExtJS XML字段在Chrome中工作,但在IE或FF中不工作
我有一个ExtJs网格,它在Chrome中呈现,而不是在其他浏览器中呈现。我想这可能是我定义字段的方式,其他浏览器是否需要其他选项 IE中的错误: SCRIPT438:对象不支持此属性或方法 …返回nodupIEXml(cs)}d=++键cs[0]。\u nodup=d强> 代码Javascript ExtJS XML字段在Chrome中工作,但在IE或FF中不工作,javascript,xml,google-chrome,firefox,extjs,Javascript,Xml,Google Chrome,Firefox,Extjs,我有一个ExtJs网格,它在Chrome中呈现,而不是在其他浏览器中呈现。我想这可能是我定义字段的方式,其他浏览器是否需要其他选项 IE中的错误: SCRIPT438:对象不支持此属性或方法 …返回nodupIEXml(cs)}d=++键cs[0]。\u nodup=d 代码 Ext.onReady(function(){ var doc; var isIE = /*@cc_on!@*/false || !!document.documentMode;
Ext.onReady(function(){
var doc;
var isIE = /*@cc_on!@*/false || !!document.documentMode;
if(isIE == true){ //IE
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(xml);
addLinks(doc);
} else { //Mozilla
doc = new DOMParser().parseFromString(xml, "text/xml");
addLinks(doc);
}
var gridStore = Ext.create('Ext.data.XmlStore', {
autoload: true,
data: doc,
proxy: {
type: 'memory',
reader: {
type: 'xml',
record: 'content'
}
},
fields: [
'Title',
'Description',
'Modified'
]
});
});
问题是,与其他浏览器相比,Chrome对查询选择器的使用更为宽松 例如,由
xml.getElementsByTagName('bar')查询的类似
的标记代码>
Chrome将返回1个结果,Firefox fox将返回0
ExtJS为XMLReader
提供了一个名为namespace
的特定配置,专门处理这个问题(请参阅:)
您所要做的就是将名称空间:“d”
添加到XML读取器中,它就会工作。同样,由于addLinks
函数无法工作的原因,因此必须将data.getElementsByTagName
替换为data.querySelectorAll
我更新了你的fiddle:你能用XML数据创建一个fiddle(),这样我们就可以看到你的网格发生了什么吗?@GuilhermeLopes添加了fiddle。您可以看到它仅在chrome中工作