从document.ready ie8设置iFrame高度

时间:2013-01-09 12:51:26

标签: javascript jquery html css iframe

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

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

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

问题似乎是在加载对话框时呈现iframe内容。 iframe获取的高度是实际iframe内容所需的高度,在我的情况下为150px。

我已经尝试了很多东西来完成我想要的东西:

  1. 将代码放在对话框
  2. 中的$(document).ready()之外
  3. 将代码调整为在对话框源
  4. 末尾调整iframe的大小
  5. 在iframe中使用$(parent.document).ready()
  6. 几个非jQuery符号/ syntaxis试图影响高度。
  7. 不幸的是他们都没有做到这一点。 有关如何告诉IE8父级/对话窗口高度为50%的任何建议吗?

1 个答案:

答案 0 :(得分: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));
}