我在这里有一个非常基本的示例网站:
http://simondouglas.com/stackexchange/jsonencodeproblem/ 编辑:这现在有效。我将此处保留给其他用户。
如果您输入“members”,您将收到数据作为JSON对象,它在控制台中。问题是我似乎无法将作者字符串解码为文字HTML。
由于没有手动进行我自己的字符串替换(将>
替换为>等),因此可以自动执行编码。
原始问题:
http://simondouglas.com/stackexchange/jsonencodeproblem/bad.php
(在源头粘贴不起作用)
从第60行开始的解决方案:
<dt>
<strong>${name}</strong><br/>
{{html getAuthorLink()}}
</dt>
您可以在模板中传递一个属性,以使用html而不是纯文本。
答案 0 :(得分:0)
简短的回答是您必须自己解码这些值。 escape()
/ unescape()
及其现代世界等价物用于URI编码,而不是HTML编码。
最常用的方法是替换字符串中的编码值,但是如果性能不是真正的问题,或者您宁愿依赖浏览器实现,则可以尝试使用各种DOM构造和提取技术。
答案 1 :(得分:0)
试试这个。 http://phpjs.org/functions/html_entity_decode:424
基本上是php的html_entity_decode for javascript的一个端口。应该做你想要的。
你也需要这个,因为它是^
的依赖答案 2 :(得分:0)
这里的问题似乎是jQuery-tmpl。它将数据视为文本,而不是HTML。数据不是以开头编码的,jQuery-tmlp在打印之前对其进行编码。
不是返回HTML,而是将HTML添加到模板中,让JSON返回链接和名称,并相应地填写。
<dt>
<strong>${name}</strong><br/>
<a href="${authorLink}">${authorName}</a>
</dt>
或者使用jQuery构建HTML并将其附加到append
。