在点击链接后阻止UIWebView滚动

时间:2013-07-18 11:08:28

标签: uiwebview uiscrollview

我有一个UIWebView,它显示了一大堆HTML,其中包含多个嵌入链接的图像。 webview是可滚动的,因此内容"在折叠下面#34;可以访问。

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

点击链接后,网页视图的contentOffset会重置为0,0,因此页面会显示为"跳转"回到顶部。理想情况下,我希望webView的contentOffset保持原样,直到模态视图控制器被解除为止。

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

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

有没有办法防止这种滚动发生?

1 个答案:

答案 0 :(得分: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>

解决了这个问题。

相关问题