【发布时间】:2014-02-25 07:20:27
【问题描述】:
我需要将 html 内容呈现为 html,但它正在呈现为字符串文本。
$('#description').html($.parseHTML('<%=event.description%>'));
jQuery 将文本添加为字符串,它不会呈现 HTML 标签,如果blog.description 包含段落、粗体、斜体和其他 HTML 元素,它会以纯文本呈现。
描述内容不存储为转义的 HTML,只是在纯 HTML 中。
提前致谢
## 编辑##
我没有使用 .NET Framework,只是使用带有 Express 和 EJS 模板引擎的 Node.JS。
我将描述字段作为两种方法存储在数据库中:
:: 解码:
"<p> example <b>text</b> </p>"
:: 未解码:
"<p> example <b>text</b> </p>"
不幸的是,这两种方式都不能使文本正确显示为 HTML 到签名的 div 中。
我求助于 jQuery,因为第一次尝试直接从 DB 加载文本没有成功。
我试过了:
$('#description').html( MY TEXT ).text();
$('#description').text( MY TEXT ).html();
$('#description').html( $.parseHTML(MY TEXT) );
不起作用。但是,如果我得到描述文本并复制并使其自己呈现(避免 DB),它会正确显示。
图片显示发生了什么:
任何额外的提示都会有所帮助。
【问题讨论】:
-
你试过没有
$.parseHTML看看它是否有效? -
HTML 呈现为 scaped:name 呈现为 b>name </b ,我尝试不使用
$.parseHTML(),但结果相同。跨度> -
当我尝试使用
WebUtility你提到它不起作用时,会引发错误。 -
抱歉,我看到了
<%= %>标签并认为它是.Net -
'' 不是 HTML,它是 EJS。在解析之前,您需要使用 EJS 模板对其进行 render()。