【问题标题】:Webview android scroll to particular id on clickWebview android在点击时滚动到特定的ID
【发布时间】:2018-01-02 11:43:59
【问题描述】:

我正在使用 android webview,如果我点击 55 页面必须滚动并转到 ,数字将从 1-100 列出>第 55 段,之后我可以向上或向下滚动,我发现我可以用 javascript 实现它我尝试过类似的东西

 content+="<div id="+i+">";
 i++;
 content += cursor.getString(cursor.getColumnIndex(VERSE_CONTENT));
 content+="</div>";

我为每个段落添加了一个 id

然后onclick

sample = dbhelper.getMonBookChap(bible, intent_bookid, intent_chapid);
sample = "<div style='line-height:150%;text-align: justify;'>" + sample + "</font></div>";
wv_Content.getSettings().setJavaScriptEnabled(true);
wv_Content.getSettings().setDomStorageEnabled(true);
wv_Content.addJavascriptInterface(new JavaScriptReceiver(this), "Android");
wv_Content.loadUrl("javascript:scrollToElement('" + intent_verseid + "')");

并且我创建了一个JavaScriptReceiver.java 类,我不知道在项目中将javascript代码放在哪里。

function scrollToElement(id) {
    var elem = document.getElementById(id);
    var x = 0;
    var y = 0;

    while (elem != null) {
        x += elem.offsetLeft;
        y += elem.offsetTop;
        elem = elem.offsetParent;
    }
    window.scrollTo(x, y);
}

【问题讨论】:

  • js 函数将在您要在 webview 上显示的 html 中。
  • 抱歉,因为我是 android 新手,所以我无法理解您能否解释更多 @statosdotcom

标签: javascript java android html webview


【解决方案1】:

&lt;script&gt; 标记中将 javascript 添加到 content 变量(您的 html 内容)的开头。

 String content ="<script>  
    function scrollToElement(id) {
        var elem = document.getElementById(id);
        var x = 0;
        var y = 0;

        while (elem != null) {
            x += elem.offsetLeft;
            y += elem.offsetTop;
            elem = elem.offsetParent;
        }
        window.scrollTo(x, y);
    }
    </script>";

   content += "<div id="+i+">";
     i++;
     content += cursor.getString(cursor.getColumnIndex(VERSE_CONTENT));
     content+="</div>";

还有一个建议,我建议在 js 中处理所有这些,我的意思是点击事件和滚动。不打电话

wv_Content.loadUrl("javascript:scrollToElement('" + intent_verseid + "')");

完全没有,只需将一些类或 id 设置为 div,然后从 JS 设置 onclick。

【讨论】:

    猜你喜欢
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多