Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS XML字段在Chrome中工作,但在IE或FF中不工作_Javascript_Xml_Google Chrome_Firefox_Extjs - Fatal编程技术网

Javascript ExtJS XML字段在Chrome中工作,但在IE或FF中不工作

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;

我有一个ExtJs网格,它在Chrome中呈现,而不是在其他浏览器中呈现。我想这可能是我定义字段的方式,其他浏览器是否需要其他选项

IE中的错误:

SCRIPT438:对象不支持此属性或方法

…返回nodupIEXml(cs)}d=++键cs[0]。\u nodup=d

代码

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中工作