2

私の問題は、iframeをロードするとiframeの高さが正しく設定され、データ(コンテンツ)がiframeにロードされると自動的に高さが設定されますが、iframeにページがロードされ、ページコンテンツに対して相対的に高さが設定され、コンテンツを削減または削除すると読み込まれたページから iframe の高さは減りません (たとえば、ページを初めて読み込むときに高さを設定100pxし、ページにデータを動的に読み込む150pxときに iframe の高さを設定し、データを減らすと iframe の高さが設定されません150px)。これは私のコードです:

function setIframeHeight(iframe) {
    if (iframe) {
        var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
        if (iframeWin.document.body) {
            iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
        }
        setInterval("setIframeHeight_id('" + iframe.id + "')", 2000);
    }
    return false;
}

function setIframeHeight_id(iframeid) {
    var iframe = document.getElementById(iframeid);
    if (iframe) {
        var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
        if (iframeWin.document.body) {
            iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
        }
    }
    return false;
}

function resizeIframe(nm) {
    setIframeHeight(document.getElementById(nm));
}

HTML

 <iframe id="IframeData" scrolling="no" frameborder="0" width="100%" onload="resizeIframe('IframeData')" allowtransparency="true"></iframe>
4

1 に答える 1

1

プレーンな JavaScript の代わりに jQuery を使用することを強くお勧めします。それ自体は奇跡を起こすわけではありませんが、コードを短くするのに役立つことは間違いありません。

あなたの問題に関しては、固定ピクセル サイズの代わりにパーセンテージ サイズを使用してみませんか? 100%iframe の高さがではなく に設定されているとしましょう150px。こうすることで、次に親コンテナのサイズを変更したときに、iframe 自体が親の高さまで引き伸ばされます。

これが役立つことを願っています。

于 2013-01-03T14:08:15.840 に答える