1

extjs

我在 Ext.Panel 中有一个 iframe,而面板在 Ext.Window 内

当 iframe 的内容发生变化时,如何使窗口自动高度

请看代码:

var filePanel = new Ext.Panel({
     autoHeight: true
});

var fileUploadWindow = new Ext.Window({
    modal: true,
    autoHeight: true,
    title: 'File Upload',
    closable: true,
    draggable: true,
    autoDestroy: false,
    width: 570,
    items: [filePanel],
    shadow: true,
    buttons: [{
        xtype: 'button',
        text: 'Close',
        handler: function (button) {
            fileUploadWindow.hide();
            fileStore.reload();
        }
    }]
});

filePanel.add(new Ext.Panel({
    html: '<iframe src="../shared/Upload.aspx?_key=' + sskey + 
        '&_id=' + wkId + '" style="width:550px; border:none;"></iframe>'
}));

有人能帮我吗 ??

4

2 回答 2

0

IMO 最好的方法是在加载框架中的文档后调整窗口大小。其实我看不出有什么别的办法。您需要获取frame元素,然后将处理程序附加到load事件以调整窗口大小。您可以通过调用获取 iframe 文档var innerDoc = (frame.dom.contentDocument) ? frame.dom.contentDocument : frame.dom.contentWindow.document;,然后通过innerDoc.body.scrollHeight.

工作样本:http: //jsfiddle.net/unS7y/3/

于 2012-12-06T09:50:23.070 回答
0

洛洛是对的。从 iframe 检索高度后,您需要调整窗口大小。

于 2012-12-06T22:29:02.147 回答