4

我正在通过 loadHTMLString 将一串 HTML 加载到 UIWebView 中。它会产生一个很长的网页。加载该字符串后,我需要导航到设置了“名称”属性的 HTML 锚标记。在 HTML 中,我可能有:

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

加载后,我需要网页向下滚动到“转到此处”。如果用户单击网页内的链接并加载外部 URL,则映射工作正常。但在这种情况下,我需要先向下滚动一个已经加载的网页。

我仍然可以像这样执行 JavaScript 代码:

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

但是我需要类似的东西来导航到锚标记。有什么建议么?

4

2 回答 2

10

您可以通过执行以下操作跳转到已加载的 HTML 文件中的锚点:

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

这将执行跳跃,无动画。

于 2009-12-29T18:24:00.973 回答
1

如果我没记错的话,只需将#go%20here 添加到 URL 的末尾即可。

啊,你的意思是已经加载了。只是重新加载页面真的不可能吗?无论如何,浏览器应该已经缓存了大部分内容......

于 2009-04-17T14:25:46.837 回答