iframe的Javascript调整大小功能在谷歌浏览器中不起作用

时间:2011-12-24 14:31:05

标签: javascript google-chrome iframe resize

我使用了在stackoverflow上找到的javascript resize函数,它适用于IE和FF。但是,在Google Chrome中,它只能调整比前一个更大的iframe。如果必须调整较小的iframe,则需要相同的高度并添加30px。

我认为它与检索scrollHeight有关,但我不知道如何修复它。

我已经尝试使用超时,因为我读到的地方可能有所帮助,但事实并非如此。

以下是相关代码:

    function autoResize(id){
        var newheight;
        if(document.getElementById)
        {
            newheight=document.getElementById(id).contentWindow.document.body.scrollHeight;
            newheight=newheight+30;
        }
        document.getElementById(id).height = (newheight) + "px";
    }

    <iframe src="<?php echo "$LC"; ?>/home.html" name="iframe" id="iframe" width="435px" height="10px" scrolling="no" frameborder="0" style="margin-left:-10px;padding-bottom:20px;" onLoad="setTimeout(autoResize('iframe'),250);";">

编辑:通过将功能更改为

来解决它
    function autoResize(id) {
        document.getElementById(id).height = document.getElementById(id).contentDocument.documentElement.scrollHeight+15; //Chrome

        document.getElementById(id).height = document.getElementById(id).contentWindow.document.body.scrollHeight+15; //FF, IE
    }

1 个答案:

答案 0 :(得分:7)

function autoResize(id) {
    document.getElementById(id).height = document.getElementById(id).contentDocument.documentElement.scrollHeight+15; //Chrome

    document.getElementById(id).height = document.getElementById(id).contentWindow.document.body.scrollHeight+15; //FF, IE
}