【问题标题】:How to reference an HTML anchor如何引用 HTML 锚点
【发布时间】:2021-08-10 08:48:01
【问题描述】:

我正在通过 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');"];

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

【问题讨论】:

    标签: javascript html iphone cocoa-touch uiwebview


    【解决方案1】:

    您可以通过以下方式跳转到已加载的 HTML 文件中的锚点:

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

    这将执行跳跃,无动画。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 不。不想重新加载。如果我使用上面的 javascript 方法和这个值 location.hash="#myAnchor",它工作正常。添加到 UIWebView 的 webViewDidFinishLoad。
      猜你喜欢
      • 2012-09-29
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 2016-04-06
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多