Nuxt中不使用v-html,如何渲染来自数据库中的html内容?

发布于 2022-09-12 02:06:01 字数 338 浏览 16 评论 0

asyncData({ app, params }) {
    return app.$api.GetArticle(params).then((res) => {
        return { article: res.data }
    })
},
<div v-html="article.content"></div>

从数据库中拿到的数据包含许多html标签的文章内容

原本只需要v-html插入数据即可,es-lint提示有注入风险

那么有什么其他的方式渲染数据库中的html内容呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠檬色的秋千 2022-09-19 02:06:01

通常情况下,这种警告是不需要在意的。但是,如果你确实在意安全的话,可以在展示html内容之前先用sanitize-html“净化”一下:

npm install sanitize-html

在代码当中初始化:

Vue.prototype.$sanitize = sanitizeHTML

然后,就可以在需要用的地方:

v-html="$sanitize(html)"

参见尤大在2017年的解释

盛夏已如深秋| 2022-09-19 02:06:01

一般这种东西入库前都需要关键字监测和转义

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文