ExtJs4.x動態新增元件無法正常顯示問題
阿新 • • 發佈:2019-02-04
在一個告警專案中做一個新需求時,前臺採用了ExtJs4.1框架在使用過程中需要動態新增一個Ext元件容器(Panel),遇到了一些問題如下:
1. ExtJs中容器Panel或Container新增一個子元件的方法是在定義的時候採用items或者是採用該元件的add函式來新增,如下程式碼段:
tb =newExt.toolbar.Toolbar({
renderTo: document.body
});// toolbar is rendered// add multiple items.// (defaultType for Toolbar is 'button')
tb.add([{text :'Button 1'},{text:'Button 2'}]);
2. 按照API中的介紹在專案中添加了一個Grid元件的封裝並除錯發現不能正常顯示到頁面中
...var userListPanel = Ext.create('Ext.panel.Panel', { items : [searchPanel] }); var mainPanel = Ext.getCmp('mainTabPanel'); mainPanel.add(userListPanel); mainPanel.doLayout();...3. IE瀏覽器版本配置,在Java應用中可以指定IE瀏覽器版本,這也使因為IE版本之間的Javascript的相容性問題,設定方式如下:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"> //指定設定的頁面以文件模式為IE8的方式瀏覽內容
4. 除錯JS發現在IE模式下獲得到ExtJs的TreePanel元件中的節點屬性為item.innerText,而在Ie9+中的版本中則為item.textContent,所以未正常新增是因為屬性值沒有獲得到導致2步驟中的程式碼沒有正常執行,所以確定瀏覽器版本之間的差異解決JS問題是十分重要的