2

编辑:[即使在股票 IOS 浏览器上也会发生以下所有情况]

我有一个加载本地 HTML 页面的 UiWebView。页面的内容由 JS 动态管理,因此它可以垂直增长或缩小。

布局是:

<div id="myContainer">
Some text here
</div>

文本内容可能会增长到需要垂直滚动,并且一切正常。

每当我加载新内容时,我都会使用:

container.innerHTML = '';
container.appendChild(newContent);

再次,一切都很好。

当我垂直滚动页面时出现问题:如果我加载一个大内容,滚动管理正确,但是我加载一个小内容并且页面保持由大内容设置的相同大尺寸,有很多未使用的空白最后的空间。

如果我从不尝试垂直滚动页面,则不会出现问题(例如,我加载大内容,我不滚动,然后我加载小内容 => 滚动很好,页面是缩小为后者)。这很奇怪,我认为 ScrollView 逻辑或 Webkit 引擎中可能会出现问题。

我已经尝试过在innerHTML = ''appendChild之间使用超时。这里没有运气。

我只是在 IOS 股票浏览器和 UiWebView 上遇到这个问题,而不是在任何桌面浏览器或 Android 移动浏览器/WebView 上。

有人可以帮忙吗?

谢谢

编辑:在这种情况下,通过浏览空白 URL 或其他任何内容来重新加载 UiWebView 不是一种适用的方式:我的应用程序完全是 JS,我绝对不能每次都重新启动应用程序。

4

1 回答 1

0

最后,我遇到了一个解决方案,我在这里发布,以便它可以帮助其他人。问题在于不会缩小的包含 div。我只是在更改其内容时将容器的高度设置为零,然后它返回到正确的大小:

container.innerHTML = '';
container.style.height = '0px';
container.appendChild(newContent);
于 2012-11-12T19:51:22.280 回答