0

我有一个UIWebView显示一大段 HTML 的内容,其中包含包含在链接中的多个嵌入图像。webview 是可滚动的,因此可以访问“首屏下方”的内容。

当链接被点击时,我使用该webView:shouldStartLoadWithRequest:navigationType:navigationType方法来捕获特定的 JavaScript 调用,然后在 webview 的顶部触发 UIViewController 的模态加载。

一旦点击链接,webviewcontentOffset就会重置为0,0,因此页面似乎会“跳”回顶部。理想情况下,我希望 webViewcontentOffset保持原位,直到模态视图控制器被解除。

我尝试在调用该方法后立即将webView.scrollView.scrollEnabled属性设置为- 这不会停止 webView 滚动。NOshouldStartLoadWithRequest

我还尝试contentOffset在点击链接的位置保存该值,然后手动重置它 - 但同样,这不会阻止 webView 滚动。

有什么办法可以防止这种滚动发生吗?

4

1 回答 1

0

事实证明,这根本与浏览器行为无关UIWebView,而是标准的浏览器行为。

HTML 中的链接格式为

<a href="#" onClick="window.open('js-call:image-xx');">
  <img src='foo.jpg'>
</a>

问题是我没有定义#锚点,所以当将 HTML 更改为

<a name="image-xx">
<a href="image-xx" onClick="window.open('js-call:image-xx');">
  <img src='foo.jpg'>
</a>

解决了这个问题。

于 2013-07-23T11:42:12.640 回答