java - 从 evaluateJavascript getElementById 返回的字符串带有斜杠和引号

标签 java android html android-studio webview

我对从 evaluateJavascriptgetElementById 返回的字符串有问题,其中返回的字符串使用斜线和引号格式化。

例如,我的 webview 中有一个元素,其 Iduser_id_firebase,就像这样

<div style="display: none" id="user_id_firebase">active|12345</div>

所以在我的 getElementById 中,我正在检索 innerHTML 并且应该返回并加载到我的 firebase 的是 active|12345

我得到的是这个

"\"active|20321\"

最后,我用 | 拆分字符串并分隔这些值,但初始 html 字符串返回时格式奇怪,带有斜杠和引号。

谁能解释为什么会这样?

webView.evaluateJavascript(
        "(function() { return (document.getElementById('user_id_firebase').innerHTML); })();",
        new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String html) {
                String currentString = html;
                String[] separated = currentString.split("|");
                // Write a message to the database
                FirebaseDatabase database = FirebaseDatabase.getInstance();
                DatabaseReference myRef = database.getReference("message");

                myRef.setValue(html);
            }
        });

最佳答案

我之前遇到过同样的问题。当我们调用 evaluateJavascript 时,它会将脚本的结果作为 JS 对象返回,字符串数据由双引号包裹的字符串携带。但是,斜杠字符用于转义双引号,您可以使用以下代码段过滤结果:

html = html.replaceAll("[\"]+", "");

关于java - 从 evaluateJavascript getElementById 返回的字符串带有斜杠和引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53936394/

相关文章:

java - 部署依赖于独立应用程序的 Web 应用程序

java - JPA/Hibernate 中的单独表与额外列

java - Caused by : java. lang.IllegalStateException: ParsePlugins is already initialized 问题

javascript - jquery 点击事件单选按钮

javascript - 使用 javascript/css 流畅地导航栏

HTML 电子邮件 : Making triangle to the bottom of td

Java 反射性能

java - 使用正则表达式搜索 unicode 文本

android - Realm 单元测试

android - 如何在 Android 中正确加载存档网页?