2009-04-17 43 views
4

我正在通過loadHTMLString將一串HTML加載到UIWebView中。它會產生一個很長的網頁。一旦該字符串被加載,我需要導航到一個HTML定位標記,其「名稱」屬性設置。在HTML中,我可能有:如何引用HTML錨?

//3 pages of text here 
<a name="go here"></a> lots more text here 
//another 3 pages of text here 

我需要網頁向下滾動到「加載到此處」。如果用戶點擊網頁內部的鏈接並加載外部網址,則映射工作正常。但在這種情況下,我需要首先向下滾動已經加載的網頁。

我仍然可以執行JavaScript的是這樣的:

[MyWebView loadHTMLString:dataString baseURL:[NSURL URLWithString:@"http://www.myscheme.com"]]; 
[webView stringByEvaluatingJavaScriptFromString:@"javascriptFunc('param1');"]; 

但我需要導航到錨標記類似的東西。有什麼建議麼?

回答

10

您可以跳轉到一個錨在已經加載HTML文件:

[webView stringByEvaluatingJavaScriptFromString:@"window.location.hash='#foo'"]; 

這會做跳躍,SANS動畫。

1

如果我沒有記錯的話,只需添加#去%20here到URL

編輯結束:啊,你的意思是已經加載。只是重新加載頁面是否真的沒有問題?瀏覽器應該緩存大部分反正...做

+0

沒有。不想重新加載。如果我使用上面的javascript方法,這個值location.hash =「#myAnchor」,它工作正常。添加到UIWebView的webViewDidFinishLoad。 – 4thSpace 2009-04-17 15:40:14