Javascript 如何在Android中捕获当前屏幕第一行中的文本?

Javascript 如何在Android中捕获当前屏幕第一行中的文本?,javascript,java,android,android-layout,webview,Javascript,Java,Android,Android Layout,Webview,我的项目是一个电子书阅读器应用程序。屏幕上只有一个VebView,可以从html文件中获取数据。它只有文本内容。我需要在当前屏幕的第一行中获取文本。在下一步中,我需要在文档中找到文本并获得文本在屏幕上的位置。最后,我需要滚动找到的位置。解决这个问题所需的一切:() html内容: <!DOCTYPE html> <head> <style type="text/css"> p{} p.x1{} p.x2{}

我的项目是一个电子书阅读器应用程序。屏幕上只有一个VebView,可以从html文件中获取数据。它只有文本内容。我需要在当前屏幕的第一行中获取文本。在下一步中,我需要在文档中找到文本并获得文本在屏幕上的位置。最后,我需要滚动找到的位置。解决这个问题所需的一切:()

html内容:

<!DOCTYPE html>

    <head>
        <style type="text/css"> 
            p{} p.x1{} p.x2{} p.x3{} p.x4{} 
            h2.x1{} h2.x2{} h2.x3{} h2.x4{}
        </style>
    </head>

    <body>

        //paragraph-1
        <p class="x1">Title-1</p>
        <p class="x2">Title-2</p>
        <p class="x3">Title-3</p>
        <p class="x4">Title-4</p>
        <p>Text content.</p>


        //paragraph-2
        <h class="x1">Title-1</p>
        <h class="x2">Title-2</p>
        <p>Text content.</p>


        //paragraph-3
        <h class="x3">Title-1</p>
        <h class="x4">Title-2</p>
        <p class="x3">Title-3</p>
        <p>Text content.</p>


        //paragraph-4
        <h class="x2">Title-1</p>
        <p class="x3">Title-2</p>
        <p>Text content.</p>


        //...

    </body>

</html>

p{}p.x1{}p.x2{}p.x3{}p.x4{}
h2.x1{}h2.x2{}h2.x3{}h2.x4{}
//第1款
标题1

标题2

标题3

标题4

文本内容

//第2款 标题-1

标题2

文本内容

//第3款 标题-1

标题2

标题3

文本内容

//第4段 标题-1

标题2

文本内容

//...
没有直接的方法来做你想做的事, 首先通过执行以下操作获取html内容

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);

String html = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
    str.append(line);
}
in.close();
html = str.toString();
然后使用子字符串concept获得所需的内容,进行查看

或者你可以使用 从HTML中的指定标记获取值

Document doc=Jsoup.connect("http://www.yahoo.com").get();
Elements elements=doc.select("img");

for(Element e:elements)
 {
  System.out.println(e.attr("src"));
 }

没有直接的方法来做你想做的事, 首先通过执行以下操作获取html内容

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);

String html = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
    str.append(line);
}
in.close();
html = str.toString();
然后使用子字符串concept获得所需的内容,进行查看

或者你可以使用 从HTML中的指定标记获取值

Document doc=Jsoup.connect("http://www.yahoo.com").get();
Elements elements=doc.select("img");

for(Element e:elements)
 {
  System.out.println(e.attr("src"));
 }

我想你在找这个

function findTopObject (elements) {
    var top = Number.POSITIVE_INFINITY;
    var obj = null;

    Array.from(elements).forEach(function (o) {
        var t = o.getBoundingClientRect(o).top;
        if (t > 0.0 && top > t) {
            obj = o;
            top = t;
        }
    });

    return obj;
}
for(变量i=0;i<1000;i++){
var p=document.createElement(“p”);
p、 innerText=“Line”+i;
文件.正文.附件(p);
}
var元素=document.querySelectorAll(“p”);
var obj=null;
window.onscroll=函数(){
如果(obj!=null){
obj.style.backgroundColor=“”;
}
obj=findTopObject(元素);
如果(obj!=null){
obj.style.backgroundColor=“红色”;
}
};
函数findTopObject(元素){
var top=正无穷大数;
var obj=null;
数组.from(元素).forEach(函数(o){
var t=o.getBoundingClientRect(o).top;
如果(t>0.0&&top>t){
obj=o;
top=t;
}
});
返回obj;
}

我想你在找这个

function findTopObject (elements) {
    var top = Number.POSITIVE_INFINITY;
    var obj = null;

    Array.from(elements).forEach(function (o) {
        var t = o.getBoundingClientRect(o).top;
        if (t > 0.0 && top > t) {
            obj = o;
            top = t;
        }
    });

    return obj;
}
for(变量i=0;i<1000;i++){
var p=document.createElement(“p”);
p、 innerText=“Line”+i;
文件.正文.附件(p);
}
var元素=document.querySelectorAll(“p”);
var obj=null;
window.onscroll=函数(){
如果(obj!=null){
obj.style.backgroundColor=“”;
}
obj=findTopObject(元素);
如果(obj!=null){
obj.style.backgroundColor=“红色”;
}
};
函数findTopObject(元素){
var top=正无穷大数;
var obj=null;
数组.from(元素).forEach(函数(o){
var t=o.getBoundingClientRect(o).top;
如果(t>0.0&&top>t){
obj=o;
top=t;
}
});
返回obj;
}

如果不需要渲染,为什么要使用WebView?只需发出一个原始HTTP(S)请求。如果不需要呈现它,那么为什么要使用WebView?只需创建一个原始HTTP(S)request.html文件,其中混合了许多…

标记。我不想全部,我只想得到当前屏幕的第一行。你能给我们看看你的html源代码吗?我们可以知道您想要什么?html文件有许多混合的…

标记。我不想全部,我只想得到当前屏幕的第一行。你能给我们看看你的html源代码吗?我们可以知道你想要什么?