1

在 jQueryUI 对话框中,我有一个 iFrame,它为我提供了文件上传功能。这个上传 iframe 应该是对话框高度的 50%(使用$(window).height())。

$(document).ready(function(){ ... });对话框文件中,我正在设置 iFrame 的高度。然后在 iframe 中使用相同的结构来设置其中 div 的高度,以正确覆盖对话框的 50% 高度(iframe 的 100% 高度)。在 iframe 中,我使用 $(window).height() 来设置高度。

这适用于所有浏览器,包括 IE9,但不适用于 IE8。

问题似乎是在加载对话框时呈现 iframe 内容。iframe 获得的高度是实际 iframe 内容所需的高度,在我的例子中是 150px。

我已经尝试了很多事情来完成我想要的:

  1. 将代码放在对话框中的 $(document).ready() 之外
  2. 将调整 iframe 大小的代码放在对话框源的末尾
  3. 在 iframe 中使用 $(parent.document).ready()
  4. 几个非 jQuery 表示法/语法试图影响高度。

不幸的是,他们都没有成功。关于如何告诉 IE8 父/对话框窗口 50% 的高度有什么建议吗?

4

1 回答 1

0

不确定这是否符合您的需求,但应该可以:

HTML

<iframe id="myiframe" onload="parent.resizeIframe(this.id)" src="..." frameborder="0" allowtransparency="true"></iframe>

js

function resizeIframe(iframeId)
{               
    $('#'+iframeId)
        .width(parseInt($(window).width(),10))
        .height(parseInt($(window).height()/2,10));
}
于 2013-01-09T13:11:38.310 回答