我不明白爲什麼第一次遇到這種代碼運行:ExtJS的4:窗口不是在首秀正確漿紗
var mypopup = Ext4.create('Suidgets.NSConfirmationBox', {
title: 'Delete',
message: 'Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>',
id: 'mypopup',
listeners: {
afterrender: function() {
this.doComponentLayout();
}
}
});
mypopup.show();
這裏的小部件的代碼: https://jsfiddle.net/ardimaunahan/63ofm68o/
我嘗試了幾個事件來觸發doComponentLayout,但它仍然不會生效:show,beforeshow,activate。不過,如果你通過瀏覽器控制檯做到這一點,它完美地調整:
Ext4.getCmp('mypopup').doComponentLayout();
有人能告訴我這是爲什麼發生?謝謝!
更新1: 我檢查了差異上生成的HTML,它不同於在主窗口的高度和寬度:
我想知道如果有一個在Ext.window任何配置。我可以使用這個窗口來修復這個bug。
更新2: 這裏是一個完全有效的小提琴:https://jsfiddle.net/ardimaunahan/hcg4p3v4。必須在瀏覽器上按Ctrl + F5才能看到損壞的彈出窗口。您還需要點擊Esc關閉彈出窗口。在Firefox/Chrome中,成功點擊顯示彈出按鈕會使佈局正常,但在IE中它仍然被破壞。
我嘗試使用「tpl」窗口內的組件,但結果相同。也檢查了生成的html中的差異,只有窗口的高度和寬度不同(見上圖) – firnnauriel
無法用僅提供的代碼重現,我認爲CSS丟失。請提出展示問題的小提琴。 – Alexander
您可以嘗試調用doComponentLayout兩次還是延遲doComponentLayout幾毫秒的幫助。 – Alexander