如何将 Vue 标签转换为可显示的 HTML 元素?
在 Vue 中,v-html 指令可以动态地将 HTML 字符串渲染到 DOM 中。然而,当您尝试将 HTML 字符串显示为实际的 HTML 元素时,可能会遇到问题。
让我们考虑这样一个例子:
<p>后台返回字段如下</p><code> content: "<strong>岗位职责</strong><p>1、负责部门所辖会计师注册内容;</p>" </code>为了将其渲染为实际的 HTML 元素,您可能尝试使用 **v-html**:
但是,这种方法可能导致不正确的显示,因为后台返回的 HTML 字符串已经过安全处理,其中特殊字符已被转义。 要解决这个问题,可以在使用 **v-html** 之前先对 HTML 字符串进行解码。例如,您可以使用以下 JavaScript 函数:
function htmlDecode(iStr) {
// 替换特殊字符 let sStr = iStr; sStr = sStr.replaceAll("&", '&'); sStr = sStr.replaceAll(">", '>'); sStr = sStr.replaceAll("<p>}</p>然后,您可以通过将解码后的 HTML 字符串传递给 **v-html** 指令来渲染正确的 HTML 元素: