【问题标题】:How to get the content height of each page in android with or without javaScript?如何在有或没有javascript的情况下获取android中每个页面的内容高度?
【发布时间】:2012-08-13 09:06:46
【问题描述】:

我想一一获取每个网页的内容高度。但我不明白。如果我单独加载页面,那么我可以获得每个页面的高度。但是如果我试图连续获取网页的内容高度,那么我失败了。

这是我的代码-

StringBuffer content;
     String temp;

         for(i=tempstart_index;i<=tempend_index;i++)
                {
                Log.i("value of i",i+1+"");

                content+=decrypted(i);
                temp1=decrypted(i);
                // TODO Auto-generated method stub
                webview.setWebViewClient(new WebClient());
                {

                    @Override
                    public void onPageFinished(WebView view, String url)
                    {
                        webview.loadUrl("javascript:window.HTMLOUT.getContentHeight(document.getElementsByTagName('html')[0].scrollHeight);");
                        int initialpageheight=webview.getContentHeight();

                        if(initialpageheight>0)
                        {
                            webheight=initialpageheight;

                            //Toast.makeText(getApplicationContext(), ""+initialpageheight, Toast.LENGTH_LONG).show();
                            Log.i("page finish","" +webheight);

                            initialpage=webheight;
                            if(pagenumber>0)
                            {
                            webview.scrollTo(0, webheight);
                            }
                                         }
         }});
         webview.loadDataWithBaseURL("file:///android_asset/KH_Brown_Fixed_Layout/",temp1,
     "text/html", "utf-8",null);
                }
         return content;
         }

然后我在合并字符串后将所有合并的页面显示为一页-

//这里reflowable()读取html并合并,合并后返回。

 String ds=reflowable();
                webview.loadDataWithBaseURL("file:///android_asset/KH_Brown_Fixed_Layout/", ds, "text/html", "utf-8", null);    

【问题讨论】:

  • 现在请帮助我并原谅4任何错误,请不要减分

标签: javascript android html webview webclient


【解决方案1】:

在 JavaScript 中,您可以通过以下方式在 webkit 浏览器上获取页面高度:

window.innerHeight

至于你还在那里尝试什么,我不知道,但这会给你在你的 Android 浏览器中的高度。

【讨论】:

  • 如果它是好的建议和作品,不要忘记投票并接受。
  • tkone 但如果我使用的是 webview.scrollHeight() 那么它会给出一些价值,但在 innerHeight 的情况下它没有给出任何价值
  • 好吧,你的代码在上面吗?那不是 JavaScript。那是Java。我不希望webview.innerHeight 工作,因为webview 是Java 类的实例化。我不知道webview 类提供了哪些方法和属性。但是您的问题是如何在 JavaScript 中获取视口的高度。这就是您在 Android 设备上执行此操作的方式。现在,如果您不确定如何在 Android 设备上从 Java 执行该代码,那就另当别论了。
  • 您应该阅读 Android 参考资料中的 webview,特别是 addJavascriptinterface。这将允许您通过 javascript 控制您的应用程序。您可以使用它来将信息传递回您的应用程序。
  • 是的 tkone 但在 Android 中我们可以添加 java 脚本接口,例如 webview.addJavascriptInterface(new JavaScriptInterface(), "HTMLOUT");在将字符串数据加载到 webview 后,我们可以获得 webview 内容的高度 - webview.loadUrl("javascript:window.HTMLOUT.getContentHeight(document.getElementsByTagName('html')[0].scrollHeight);");
猜你喜欢
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 2019-10-05
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
相关资源
最近更新 更多