将 Vue 标签转换为 HTML
当我们从后端收到含有 HTML 标签的文本时,需要将其转换为浏览器可识别的 HTML 代码。在 Vue 中,可以使用 v-html 指令将 Vue 表达式转换为 HTML 元素。
然而,在某些情况下,v-html 指令可能无法正常工作,可能是由于安全过滤导致文本中某些特殊字符被转义。解决此问题的一种方法是将特殊字符进行转义,然后再使用 v-html。
以下是一个实现此功能的示例函数:
function htmlDecode(iStr) { let sStr = iStr; sStr = sStr.replaceAll("&", "&"); sStr = sStr.replaceAll(">", ">"); sStr = sStr.replaceAll("<", "<"); sStr = sStr.replaceAll(""", '"'); sStr = sStr.replaceAll("'", "'"); return sStr; }
在使用 v-html 之前,可以将返回文本传递给 htmlDecode 函数,如下所示:
<div v-html="htmlDecode(content)"></div>
通过执行此操作,我们将确保所有特殊字符都被正确转义,并且 v-html 能够正确地渲染 HTML 代码。