【问题标题】:Javascript/jQuery Fail to Append html to bodyJavascript/jQuery 无法将 html 附加到正文
【发布时间】:2015-10-16 09:13:27
【问题描述】:

我正在开发一个android/ios 应用程序。我需要某种无限滚动,所以当用户滚动并到达页面末尾时,将为他加载新内容。

在本机代码中,我将新内容存储在一个字符串中,然后将其附加到带有javascript/jquery 的页面。

对于安卓:

String js = "javascript:(function() { document.body.innerHTML += '" + newContent + "';}())";
loadUrl(js);

到目前为止一切顺利,但是如果我的newContent 包含一组特定字符,此代码将失败并且没有任何附加内容。

到目前为止我发现了这个字符:'\n«» 

如果我在 newContent 中替换此字符,则代码可以正常工作,并且新内容将附加到正文。

问题是每次我认为一切都结束了,我发现所有非法字符都是一个新字符导致我的代码失败。

我也尝试将我的 string 解析为 html 然后添加它,但它也失败了。

js = "javascript:(function(){var html = $.parseHTML( '"+newContent+"' ); $(\"body\").append(html);}())";
loadUrl(js);

所以有没有什么通用的方法来解决这个非法字符?

任何帮助将不胜感激。

【问题讨论】:

  • @GuruprasadRao 在哪里?

标签: javascript android jquery uiwebview android-webview


【解决方案1】:

您的文本包含导致错误的未转义的特殊字符。 尝试使用 encodeURI 转义文本

编辑: 尽管由于特殊字符,javascript 可能已经失败,但您必须已经使用 Java 转义字符串。尝试谷歌搜索“java escape string for javascript”,你会发现很多信息。

【讨论】:

  • tnx 很多,我会试试的。
  • 我试过String results = StringEscapeUtils.escapeJavaScript(str);,我给了我这样的东西:<p>\u064A\u0648\u0645 \u0643\u0627\u0645\u0644. 3 \u0640 \u0627\u0644\u0642\u0635\u0631</p>,它有时有效,有时无效!!有什么问题?
  • 我还需要替换«»  ,这些怎么去掉?
  • 检查这个:stackoverflow.com/questions/16207625/…  已经是 html 代码了,我不确定。你必须尝试一下:StringEscapeUtils.unescapeHTML(str).
  • 我试过body = StringEscapeUtils.unescapeHtml4(body); body = StringEscapeUtils.escapeEcmaScript(body); 但它仍然在某些字符串上失败。喜欢本页正文:pastebin.com/CMNDsgt5
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 2011-01-04
  • 1970-01-01
相关资源
最近更新 更多