2017-07-12 98 views
0

我有一個在Chrome中呈現的ExtJs網格,但不是其他瀏覽器。我認爲這可能是我的領域被定義的方式,是否還有其他瀏覽器需要其他選項?ExtJS XML字段在Chrome中工作,但不是IE或FF

錯誤在IE:

SCRIPT438:對象不支持此屬性或方法

...返回nodupIEXml(CS)} d = ++密鑰; cs [0] ._ nodup = d; ..

代碼

Ext.onReady(function(){ 
    var doc; 
      var isIE = /*@[email protected]*/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

+0

你可以創建一個小提琴(https://fiddle.sencha.com),所以我們可以看到正在發生的事情與你的網格:

我更新了小提琴? –

+0

@GuilhermeLopes增加了小提琴。你可以看到它只是在鉻中工作 –

回答

1

這裏是東西,Chrome的往往是與查詢選擇器比其他瀏覽器多一點寬容。

例如像<foo:bar>通過xml.getElementsByTagName('bar'); 鉻查詢標籤將返回1分的結果和Firefox狐狸會返回0

ExtJS的先後爲XMLReadernamespace專門處理該問題的具體配置(參見:http://docs.sencha.com/extjs/6.5.0/classic/Ext.data.reader.Xml.html#cfg-namespace )。

您所要做的就是將namespace: 'd'添加到您的XML讀取器,它將起作用。另外,出於同樣的原因,您的addLinks功能將不起作用,所以data.getElementsByTagName必須替換爲data.querySelectorAll。與你的XML數據https://fiddle.sencha.com/#view/editor&fiddle/238v

相關問題