有需求后端返回的一个静态页面是一个富文本,使用原生组件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

转载原文链接:
https://segmentfault.com/a/1190000040608370

标签: none

已有 2 条评论

  1. 新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com

  2. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

添加新评论