有需要后端返回的一个动态页面是一个富文本,应用原生组件 rich-text 之后,即可渲染到页面,当渲染到页面之后,含有 img 图片如何实现点击预览?
思路:应用正则把图片的 url 进行剖离进去,push 进一个数组中,点击富文本组件,运行 wx.previewImage 办法。
wxml:
<rich-text nodes="{{富文本}}" catchtap="richTextClick"></rich-text>
点击事件:
// 富文本点击事件
richTextClick() {
// 富文本
const richContent = this.data.content;
// 判断含有图片
if (richContent.indexOf("src") >= 0) {const imgs = [];
richContent.replace(/]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) {imgs.push(capture);
})
wx.previewImage({current: imgs[0], // 以后显示图片的 http 链接
urls: imgs
})
}
},
有余 &Tip:
1、点击事件是加在富文本组件 rich-text 上的,渲染到页面也是一样,并不会把富文本中的 dom 渲染在页面中;
2、在预览图片时,无奈晓得用户点击的以后是哪个图片。所以,含有多张图片时,预览始终会从第一张图片开始,可左右滑动。
相干文档:
rich-text
wx.previewImage
心愿大佬有更好的解决方案,私信或者评论我,万分感激!