0

コンテンツに応じて iframe のサイズを変更するように依頼されました。何時間も検索した後、ようやく必要に応じて動作するようになりましたが、Firefox でしか動作しません。少なくともクロム、ff、およびieで動作する必要があります。ここにスクリプトがあります

<script language="JavaScript">
<!--
function autoResize(id){
    var newheight;

    if(document.getElementById){
        newheight=document.getElementById(id).contentWindow.document.body.scrollHeight; //ff
        newheight=document.getElementById(id).contentDocument.body.offsetHeight; //chrome
        newheight=document.getElementById(id).contentDocument.documentElement.scrollHeight;

        }

    document.getElementById(id).height= (newheight) + "px";
}
//-->
</script>

そしてiframeコード

<iframe name="result" id="iframe" seamless src="action/search.php" width="100%" onLoad="autoResize('iframe');" marginwidth=0 marginheight=0 frameborder=0 scrolling="no" style="border:0; overflow:hidden">
    </iframe>

どんな提案でも大歓迎です。

4

2 に答える 2

0

これを試して

onload="if (window.parent &amp;&amp; window.parent.autoIframe) {window.parent.autoIframe('tree');}

iframe と

<script type="text/javascript">
    function autoIframe(frameId){
        try{
            frame = document.getElementById(frameId);
            innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;

            if (innerDoc == null){
                            // Google Chrome
                frame.height = document.all[frameId].clientHeight + document.all[frameId].offsetHeight + document.all[frameId].offsetTop;
            }
                    else{
                    objToResize = (frame.style) ? frame.style : frame;
                    objToResize.height = innerDoc.body.scrollHeight + 18;
                    }
        }

        catch(err){
                alert('Err: ' + err.message);
            window.status = err.message;
        }
    }
    </script>
于 2012-11-05T03:01:30.727 に答える
0

要素の高さを直接設定する代わりに、おそらく属性として設定する必要があります。

var heightAttr = document.createAttribute("height");
heightAttr.value = newheight;
document.getElementById(id).attributes.setNamedItem(heightAttr);

または、css オブジェクトで設定することもできます。

document.getElementById(id).style.height = (newheight) + "px";
于 2012-11-05T03:05:57.380 に答える