1

jQueryUI ダイアログには、ファイル アップロード機能を提供する iFrame があります。この upload-iframe は、ダイアログの高さの 50% であると想定されています ( を使用$(window).height())。

$(document).ready(function(){ ... });ダイアログファイルから、iFrame の高さを設定しています。次に、iframe で同じ構造を使用して、その内部の div の高さを設定し、ダイアログの 50% の高さ (iframe の 100% の高さ) を正しくカバーします。iframe では、 $(window).height() を使用して高さを設定しています。

これは、IE9 を含むすべてのブラウザーで機能しますが、IE8 では機能しません。

問題は、ダイアログの読み込み中に iframe コンテンツがレンダリングされることです。iframe が取得する高さは、実際の iframe コンテンツが必要とする高さです。私の場合は 150px です。

私は私が望むものを達成するために多くのことを試みました:

  1. ダイアログの $(document).ready() の外にコードを配置します
  2. ダイアログ ソースの最後に iframe のサイズを変更するコードを配置します。
  3. iframe で $(parent.document).ready() を使用する
  4. いくつかの非 jQuery 表記法​​/構文が高さに影響を与えようとしています。

残念ながら、それらのどれもトリックをしませんでした。親/ダイアログ ウィンドウの 50% の高さを IE8 に伝える方法に関する提案はありますか?

4

1 に答える 1

0

それがあなたのニーズに合っているかどうかはわかりませんが、うまくいくはずです:

HTML

<iframe id="myiframe" onload="parent.resizeIframe(this.id)" src="..." frameborder="0" allowtransparency="true"></iframe>

js

function resizeIframe(iframeId)
{               
    $('#'+iframeId)
        .width(parseInt($(window).width(),10))
        .height(parseInt($(window).height()/2,10));
}
于 2013-01-09T13:11:38.310 に答える