JavaScript/Jsoup - 从 "i class"获取背景图像 url

标签 javascript android jsoup

因此,我正在应用程序的 webview 中加载一个网页,其中有一个 HTML i class="img profimage" ,它有一个背景图像 url,这就是我的目标...

我想使用 JavaScript 或使用 Jsoup 来获取该目标...

到目前为止我对 Jsoup 的尝试是这样的:

public class GetImage extends AsyncTask<String, String, String> {

protected String doInBackground(String... strings) {

Document document = null;

try {

document = Jsoup.connect(url).get();

} catch (IOException e) {

e.printStackTrace();

}

String temp = document.select("i.img.profpic").first().getElementsByAttribute("style").toString();

return temp.substring(temp.indexOf("(") + 1, temp.indexOf(")"));

}

 

protected void onPostExecute(String result) {

Log.d("ChatScreen", result);

Toast.makeText(ChatScreen.this, result, LENGTH_SHORT).show();

}

}

但是我得到了 NPE... 我不知道如何使用 JavaScript 获取 i class 的背景图像 url...我可以在网络上找到大量示例,了解如何为 div 获取它使用ids

页面的 HTML 结构类似于:

<div ....>
<div ....>
<i class="img profimage" style="background-image: url("url here");"/>
</div>
</div>

最佳答案

检查this Answer也许这会起作用,但我没有尝试过。 JS 函数编写在 evaluateJavascript() 中,它将读取样式属性,然后您可以使用 substring 方法来获取 URL。

webview.evaluateJavascript(
        "(function() { return (document.getElementsByTagName('i')[index].getAttribute('style')); })();",
         new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String html) {
                Log.d("HTML", html); 
                // now use substring to get url.....
            }
    });

希望这对您有帮助。

关于JavaScript/Jsoup - 从 "i class"获取背景图像 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882324/

相关文章:

java - 通过 Jsoup 更新 Facebook 状态

javascript - JS/JQ a.click() 会在执行操作之前刷新页面,或者根本检测不到

java - 'response.body()' 的引用可能会产生 'java.lang.NullPointerException

java - 从文件夹导入类

java - 使用 jsoup 解析 HTML : differences between Android and Java

java - 使用 Jsoup 仅从子节点中选择?

javascript - 变量中的 Jquery AJAX 响应 JSON。

javascript - 给定字符串的所有排列 - 复杂性

javascript - Angular 7 中的 Controller 在哪里,因为它遵循 mvc 架构

android - 拥有可重用对话框的最佳方式是什么?