获取iframe的高度仅包括渲染的元素

时间:2014-03-06 16:12:53

标签: javascript jquery css

我正在尝试计算iframe需要完全显示的最小高度。

为了实现这一点,我尝试了以下方法:

    var neededSize = $(window.document).height();

    // Get the jquery of the parent in order to resize the frame
    var par = window.parent;

    if(par != null) {
        var jq = par.jQuery;

        var frameParent = jq('#' + window.frameElement.id);
        frameParent.height(neededSize);
    }

这种方法的问题是iframe包含一些隐藏元素(display:none;)。当我使用jQuery.height()时,它返回所需的最小高度,包括隐藏元素。

有没有人知道通过jquery或标准javascript获取最小高度的方法,不包括隐藏div的高度,或者我应该自己计算? (获取所有隐藏的字段并减去每个高度?)

1 个答案:

答案 0 :(得分:0)

尝试将其包装在文档就绪处理程序中:

$(function(){
  //your code here
});

文档:

  

传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置。使用依赖于CSS样式属性值的脚本时,在引用脚本之前引用外部样式表或嵌入样式元素非常重要。

因此代码将在呈现所有DOM元素之后执行。并且可能高度与隐藏元素一致。 (它们可能会在瞬间显示,因为.css仍在加载)