【问题标题】:Can not push HTML block into the android html page无法将 HTML 块推送到 android html 页面
【发布时间】:2020-05-18 22:39:24
【问题描述】:

我正在从服务器获取一个 HTML 块,并希望将其推送到 android 应用程序中的一个 html 页面中。

来自服务器的示例 html(这是在 logcat 中打印的带有 crlf 等的确切输出):

<ul>
   <li><a href="Details.html?id=tu&i=217">217</a></li>
   <li><a href="Details.html?id=tu&i=214">214</a></li>
</ul>

这就是我将输出传递给应用程序 html 页面的方式:

runJavaScript("setHTML('"+ html +"')");


public void runJavaScript(final String code){
    webview.post(new Runnable() {
        @Override
        public void run() {
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
                webview.evaluateJavascript(code, null);
            }else {
                webview.loadUrl("javascript:" + code);
            }
        }
    });
}

这是从android调用的html页面内的Javascript setHTML函数:

function setHTML(html){
    $("#result").html(html);
}

这是错误:

“未捕获的语法错误:无效或意外令牌”,来源: file:///android_asset/html/en/result.html (1)

我尝试通过用一个简单的单词替换 HTML 块来调试项目,它可以工作。我认为像quotationcrlf 这样的HTML 字符可能会产生错误,但我不想转义它们(我不想设置纯文本而是真正的html)。我应该如何更改当前代码?谢谢。

【问题讨论】:

    标签: javascript android html


    【解决方案1】:

    我想,为时已晚,并且无法准确回答您的问题,因为您不想转义任何字符(虽然我不确定为什么),但也许它会对某人有所帮助。 就我而言,在运行之前 runJavaScript("setHTML('"+ html +"')"); 我不得不转义所有单引号,这就足够了。

    html = html.replace("'", "\\'");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2022-01-23
      • 1970-01-01
      • 2015-08-13
      相关资源
      最近更新 更多