JavaScript使用Android webview获取所有类名文本
JavaScript get all class names text using Android webview
我试图通过这样做从类中获取文本:
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
myWebView.setWebViewClient(null);
myWebView.loadUrl("javascript:window." +
"HTMLOUT.processHTML('<div>'+document.getElementsByClassName('text Phil-1-3')[1].innerHTML+'</div>');");
}
});
myWebView.loadUrl("https://www.biblegateway.com/passage/?search=Philippians+1%3A3&version=ESVUK");
但是它只获取第一个元素。我想是因为
[0].innerHTML
?
我想获得所有类名的文本,但我不知道如何做到这一点。什么好主意吗?我很感激你的帮助。谢谢!
完全正确——你得到了你想要的:)
getElementsByClassName
返回一个'类似数组的对象',你可以使用Array.reduce
函数来遍历它的元素并连接它们的innerHTML
s:
Array.prototype.reduce.call(
document.getElementsByClassName('...'),
function(a, b) { return a + '<div>' + b + '</div>' },
'');
应用到你的例子:
myWebView.loadUrl("javascript:window." +
"HTMLOUT.processHTML(" +
" Array.prototype.reduce.call(" +
" document.getElementsByClassName('text Phil-1-3'), " +
" function(a, b) { return a + '<div>' + b + '</div>' }, " +
" '')" +
");");
相关文章:
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 如何获取经过编辑的文本
- 使用 jQuery 从下拉列表中获取所选文本
- 如何获取文本框组的值,并使用jquery将它们放入(key:Value)数组中
- 使用格式化文本获取 DIV 或跨度的动态宽度高度
- 通过搜索 td 文本获取嵌套表 ID
- 将 HTML 元素的文本获取到数组中
- 如何从响应文本获取 JSON 字符串到 JavaScript 中
- 如何根据选项文本获取选项索引
- 通过其文本获取dom节点
- 如何通过锚文本获取对象
- 在Javascript/JQuery中从超链接文本获取Href
- 如何将函数中的文本获取到此通知警报中
- 根据指定的文本获取标记
- 通过匹配文本获取json数据到数组中
- 如何通过id和输出文本获取选项元素
- 通过相邻的TH内部文本获取TD中的文本
- 如何将任何指定网页中的文本获取到变量中
- 通过内部文本获取所有元素
- 从给定的HTML文本获取JQuery