我正在使用VueJS和Kentico Kontent作为CMS开发网站。此CMS提供了“富文本”功能,基本上允许文本内容嵌入链接和基本格式,当通过API提供服务时,这些内容会自动转换为HTML。
使用v-html
指令显示HTML内容没有问题,但是我无法想到将内部<a>
标记的属性设置为_blank
的方法,因此单击嵌入式链接会打开新窗口。
是否有任何优雅的方法可以执行此操作而不必从前端解析HTML?
我正在使用VueJS和Kentico Kontent作为CMS开发网站。此CMS提供了“富文本”功能,基本上允许文本内容嵌入链接和基本格式,当通过API提供服务时,这些内容会自动转换为HTML。
使用v-html
指令显示HTML内容没有问题,但是我无法想到将内部<a>
标记的属性设置为_blank
的方法,因此单击嵌入式链接会打开新窗口。
是否有任何优雅的方法可以执行此操作而不必从前端解析HTML?
您可以创建一个指令:
Vue.directive('links-in-new-window',{
inserted: function(el) {
const anchors = el.querySelectorAll('a')
anchors.forEach((anchor) => anchor.target = "_blank")
}
})
并将其应用于您在以下位置使用v-html
的同一元素:
<div class="content" v-html="content" v-links-in-new-window></div>