1

我寻找了一个 javascript 脚本,它将改变 iframe 的高度,根据其中加载的页面,我找到了一个代码,但它仅适用于 IE 和 FireFox.. 我应该改变什么?

    <SCRIPT type="text/javascript" LANGUAGE="javascript">
    function reSize()
    {
        try{    

        var oBody   =   ifrm.document.body;
        var oFrame  =   document.getElementById("ifrm");

        oFrame.style.height = oBody.scrollHeight + (oBody.offsetHeight - oBody.clientHeight);

        }
        //An error is raised if the IFrame domain != its container's domain
        catch(e)
        {
        window.status = 'Error: ' + e.number + '; ' + e.description;
        }
    }

</SCRIPT>

iframe 代码:

<iframe width=940px onload=reSize() src="html/guides.html" id="ifrm" name="iframe_main" frameborder="0"></iframe>

感谢您的帮助!

4

3 回答 3

2

对于初学者: document.all已经过时了很长一段时间。

您应该使用getElementById

此外,如果 iframe 不在您的域中(例如,您在 www.mydomain.com 并且 iframe 从 www.someotherdomain.com 加载内容),您将无法使用正常的安全设置获取 iframe 的 document.body大多数现代浏览器...有关详细信息,请参见此处

于 2012-10-30T15:52:17.803 回答
0

尝试var oBody = ifrm.contentDocument.body || ifrm.contentWindow.document.body;

于 2012-10-30T15:55:09.853 回答
0

给你的 iframe 一个 id。我给了“myIframe”,然后在你的函数中使用这一行而不是你的。它无处不在:

document.getElementById("myIframe").setAttribute("height",600)​;
于 2012-10-30T16:00:25.787 回答