gpt4 book ai didi

javascript - ExtJS XML 字段在 Chrome 中工作,但在 IE 或 FF 中不起作用

转载 作者:行者123 更新时间:2023-12-03 03:53:34 26 4
gpt4 key购买 nike

我有一个 ExtJs 网格,可以在 Chrome 中呈现,但不能在其他浏览器中呈现。我认为这可能是我的字段定义方式,其他浏览器是否需要任何其他选项?

IE 中的错误:

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

...返回 nodupIEXml(cs)}d=++key;cs[0]._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'
]
});
});

fiddle

最佳答案

事情是这样的,Chrome 对查询选择器的处理往往比其他浏览器更宽松一些。

例如像 <foo:bar> 这样的标签查询者xml.getElementsByTagName('bar');Chrome 将返回 1 个结果,Firefox Fox 将返回 0。

ExtJS 有一个特定的配置 XMLReadernamespace专门处理这个问题(参见:http://docs.sencha.com/extjs/6.5.0/classic/Ext.data.reader.Xml.html#cfg-namespace)。

您所要做的就是添加 namespace: 'd'添加到您的 XML Reader 中,它就会工作。另外,出于同样的原因,您的 addLinks函数不起作用,所以 data.getElementsByTagName必须替换为 data.querySelectorAll .

我更新了你的 fiddle :https://fiddle.sencha.com/#view/editor&fiddle/238v

关于javascript - ExtJS XML 字段在 Chrome 中工作,但在 IE 或 FF 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com