2013-07-18 76 views
0

我得到了一個UIWebView,它顯示了一大段帶有多個嵌入鏈接的嵌入式圖像的HTML。 webview是可滾動的,因此可以訪問「摺疊下」的內容。防止UIWebView在點擊鏈接後滾動

當點擊鏈接時,我使用webView:shouldStartLoadWithRequest:navigationType:navigationType方法來捕獲特定的JavaScript調用,然後在webview頂部觸發UIViewController的模式加載。

一旦鏈接被點擊,webview的contentOffset被重置爲0,0,因此該頁面似乎「跳」回到頂部。理想情況下,我希望webView的contentOffset保持原有狀態,直到模型視圖控制器被解除爲止。

一旦調用shouldStartLoadWithRequest方法,我已經嘗試將webView.scrollView.scrollEnabled屬性設置爲NO - 這不會停止webView的滾動。

我也試着在點擊鏈接的地方保存contentOffset的值,然後手動重置它 - 但是,這並不能阻止webView滾動。

有什麼辦法可以防止這種滾動發生?

回答

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> 

解決了這個問題。