代码之家  ›  专栏  ›  技术社区  ›  Ali Sheikhpour

无法将HTML块推入android HTML页面

  •  0
  • Ali Sheikhpour  · 技术社区  · 6 年前

    我从服务器上得到一个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);
                }
            }
        });
    }
    

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

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

    这就是错误:

    “未捕获的SyntaxError:无效或意外标记”,来源: file:///android_asset/html/en/result.html (1)

    我试着用一个简单的单词替换HTML块来调试这个项目,结果很好。我认为HTML字符 quotation crlf 可能会产生错误,但我不想逃避它们(我不想设置纯文本,而是真正的html)。我应该如何更改当前代码?谢谢

    0 回复  |  直到 6 年前
        1
  •  0
  •   VasyaV    5 年前

    我想,这已经太晚了,也不能准确回答你的问题,因为你不想逃避任何角色(但我不知道为什么),但也许它会帮助别人。 就我而言,在跑步之前 runJavaScript("setHTML('"+ html +"')"); 我不得不避开所有单引号,这就足够了。

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