作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对从 evaluateJavascript
和 getElementById
返回的字符串有问题,其中返回的字符串使用斜线和引号格式化。
例如,我的 webview 中有一个元素,其 Id
为 user_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/
我是一名优秀的程序员,十分优秀!