编辑:[即使在股票 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,我绝对不能每次都重新启动应用程序。
最佳答案
最后,我遇到了一个解决方案,我在这里发布,以便它可以帮助其他人。问题在于不会缩小的包含 div。我只是在更改其内容时将容器的高度设置为零,然后它返回正确的大小:
container.innerHTML = '';
container.style.height = '0px';
container.appendChild(newContent);
关于IOS浏览器一旦滚动就不会缩小页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349146/