0

ASP.NETWebアプリケーションのページのiframeにコントロールが含まれています。コントロールは、ユーザーが選択したものに応じて垂直方向のサイズを変更します(一部の要素は入り、他の要素は出ます)。したがって、コントロール全体が表示され、iframeとその下の要素の間にギャップが生じないように、iframeのサイズを正確に設定する必要があります。

Webのどこかで、クロスブラウザの方法でドキュメントの高さを取得する方法を見つけました。

        function getDocHeight(document) {
        return Math.max(
            Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
            Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
            Math.max(document.body.clientHeight, document.documentElement.clientHeight)
        );
    }

したがって、コントロールページのself.document.body.onloadで、次の関数を呼び出します。

        function adjustIframeHeight() {
        var iframe = window.parent.document.getElementById(window.frameElement.id);
        var iframeHeight = getDocHeight(iframe.contentWindow.document);
        iframe.style.height = iframeHeight + "px";
    }

問題は、Firefoxなどでは正常に機能することですが、ChromeやIEなどではコントロールの下部が途切れる場合があります。

この高さを取得するための本当にクロスブラウザの方法はありますか、それとも私は何か間違ったことをしていますか?お時間をいただきありがとうございます

4

1 に答える 1

0

これを支援するためにjQueryのようなものを使用します(高さメソッドの使用はブラウザによって異なるようです)。これに役立つjQueryコードがいくつかあります:

$(document).height(); // height of HTML doc
于 2013-03-15T10:36:07.607 に答える