1

読み込まれたページに応じて iframe の高さを変更する JavaScript スクリプトを探しました。コードを見つけましたが、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

iframeにIDを指定します。私は「myIframe」を与え、その後、あなたの代わりにあなたの関数でこの行を使用します。それはどこでも動作します:

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

試すvar oBody = ifrm.contentDocument.body || ifrm.contentWindow.document.body;

于 2012-10-30T15:55:09.853 に答える