【问题标题】:How to scroll Android WebView programmatically to a specific element如何以编程方式滚动 Android WebView 到特定元素
【发布时间】:2020-10-25 09:43:19
【问题描述】:

我使用loadDataWithBaseURL(null, html, null, null, null) 将 HTML 字符串直接加载到 WebView 中,稍后我希望能够以编程方式滚动到内部元素,例如<p id="pos1"><a name="pos1"></a>

我发现了一个类似的问题,答案是使用 javascript: https://stackoverflow.com/a/2239301/2534762

但这真的是唯一的方法吗?难道没有另一种简单的方法可以直接对 WebView 说:“转到 #pos1”,而不必在要滚动的每个 HTML 页面中嵌入脚本?在我看来,这是一项要求简单解决方案的常见任务,但显然我错了......或者有没有办法做到这一点,也许以某种特定方式调用 loadUrl 或 loadDataWithBaseURL?

【问题讨论】:

    标签: android


    【解决方案1】:

    我发现我不需要在HTML页面中嵌入JavaScript,如that other answer建议的那样,我可以直接在URL中写一行JavaScript:

    webView.loadUrl("javascript:document.getElementById('"+aID+"').scrollIntoView()");
    

    【讨论】:

    • 嗨@MMazzon。通过 URL 加载的 html 是什么?前任。 webView.loadUrl('www.company.com/policy')
    • @iori24 我正在加载我自己的 HTML,由我的应用程序生成,而不是外部网页。后来我想做的是滚动到该页面中的给定位置,这是我用上面的代码实现的(我不记得确切,那是前一段时间了)
    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2015-03-22
    相关资源
    最近更新 更多