3

iFrame を動的にロードして外部コンテンツを表示する HTML5 アプリを作成しました。このソリューションは、Android 4.0 のリリースまでは問題なく機能していました。これにより、iframe レンダリングの動作が変更されたようです。

高さを検出できなくなったようです。高さ 900 ピクセルのページの高さ約 50 ピクセルを含む小さなスクロール可能なボックスが表示されます。高さを 100% に設定しようとしましたが、これは視覚的に機能しますが、アプリはページの折りたたみの下にあるもので奇妙なクリック結果を取得します!

各フレームの高さを手動で設定すると問題なく動作しますが、動的なコンテンツのため、これは非常に実用的ではありません。また、アプリには iframe 内に特定のレベルの内部ナビゲーションがあるため、サブページは元のページとは別の高さになる可能性があります。 iframe の高さ - これも以前のバージョンの Android では正常に機能していました。

誰かアドバイス/説明はありますか?

4

2 に答える 2

3

それでも問題が解決しない場合に備えて、この回避策を見つけました...

<iframe src='externalcontent.htm' width='100%' scrolling='no' frameBorder='0' id='theiFrame' onLoad='fixiFrame();'></iframe>

function fixiFrame () {
   if ((android) && (androidVersion > 3)) {
      iFrameContentHeight = document.getElementById('theiFrame').contentDocument.body.offsetHeight;
      document.getElementById('theiFrame').style.height = iFrameContentHeight + 'px';
   }
}
于 2012-09-10T18:39:28.040 に答える
0

これは Android 4 および 5 で機能します。

document.getElementById('theIframe').style.height = document.getElementById('theParent').offsetHeight + 'px';

「+px」を忘れないでください

于 2015-03-23T10:35:05.603 に答える