3

我们构建了一个 HTML5 应用程序,它可以动态加载 iFrame 以显示外部内容。在 android 4.0 发布之前,该解决方案运行良好——这似乎改变了 iframe 渲染的工作方式?

它似乎无法再检测高度,它显示了一个小的可滚动框,其中包含大约 50 像素高度的 900 像素高页面。我尝试将高度设置为 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 回答