自动调整iframe的高度,Chrome和Safari的问题

时间:2012-12-28 16:38:49

标签: javascript jquery iframe

我需要在页面中包含一个iframe,我想计算正确的高度并调整它以避免显示垂直滚动条。但是,如果需要,我想显示水平滚动条。

我发现了几个关于这个问题的帖子,但没有人100%工作。这是我见过的一种非常常见的方法:

$(document).ready(function() {      
$('iframe').load(function() {
$("#your-iframe-id").height($("#your-iframe-id").contents().find("html").height()+35);
});
})

<iframe id="your-iframe-id" style="width:100%;border:0;" src="test.php"></iframe>

我用这种方法发现的问题是,使用Safari和Chrome,如果导航到iframe,我访问的页面比前一个页面短,框架的高度仍然是更高的页面。相反,如果您从短页面导航到高页面,一切都运行正常。 Firefox没有这个问题;我没有尝试使用IE和Opera。

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

<script>
    var resizeHandle = function()
    {
        var theFrame = $('.window-content-wrapper', parent.document.body);
        theFrame.height($(document).height());      
        var theFrame = $('.window-content', parent.document.body);
        theFrame.height($(document).height());
    };
</script>

<iframe id ="home"  onResize="resizeHandle()" onload="resizeHandle()" style="width:100%;border:0;" src="test.php"></iframe>