【问题标题】:Set iFrame height from document.ready ie8从 document.ready ie8 设置 iFrame 高度
【发布时间】:2014-02-03 19:02:07
【问题描述】:

在 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. 将代码放在对话框中的 $(document).ready() 之外
  2. 将调整 iframe 大小的代码放在对话框源代码的末尾
  3. 在 iframe 中使用 $(parent.document).ready()
  4. 一些非 jQuery 表示法/语法试图影响高度。

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

【问题讨论】:

  • 也许您需要使用“老式”window.onload。在加载所有内容和资源之前它不会触发。

标签: javascript jquery html css iframe


【解决方案1】:

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

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));
}

【讨论】:

    猜你喜欢
    • 2011-03-02
    • 2013-02-21
    • 2018-06-30
    • 1970-01-01
    • 2012-10-24
    • 2012-11-29
    • 2016-01-12
    • 2016-10-07
    • 2017-09-02
    相关资源
    最近更新 更多