
如何将 vue 标签转换为 html
在 Vue 中,v-html 指令可以动态地将 HTML 字符串渲染到 DOM 中。然而,当您尝试将 HTML 字符串显示为实际的 HTML 元素时,可能会遇到问题。
让我们考虑这样一个例子:
<p>后台返回字段如下</p>
<pre class="brush:php;toolbar:false;"><code>
content: "<strong>岗位职责</strong><p>1、负责部门所辖会计师注册内容;</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/1622" title="宣小二"><img
src="https://img.php.cn/upload/ai_manual/000/000/000/175679997972005.png" alt="宣小二" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/1622" title="宣小二">宣小二</a>
<p>宣小二:媒体发稿平台,自媒体发稿平台,短视频矩阵发布平台,基于AI驱动的企业自助式投放平台。</p>
</div>
<a href="/ai/1622" title="宣小二" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>"
</code>
为了将其渲染为实际的 HTML 元素,您可能尝试使用 **v-html**:
但是,这种方法可能导致不正确的显示,因为后台返回的 HTML 字符串已经过安全处理,其中特殊字符已被转义。 要解决这个问题,可以在使用 **v-html** 之前先对 HTML 字符串进行解码。例如,您可以使用以下 JavaScript 函数:
function htmlDecode(iStr) {
// 替换特殊字符
let sStr = iStr;
sStr = sStr.replaceAll("&", '&');
sStr = sStr.replaceAll(">", '>');
sStr = sStr.replaceAll("<", '<');
sStr = sStr.replaceAll(""", '"');
sStr = sStr.replaceAll("'", "'");
return sStr;}
然后,您可以通过将解码后的 HTML 字符串传递给 **v-html** 指令来渲染正确的 HTML 元素:










