小程序 rich-text富文本 的一些问题

图片

1、返回的数据中有的图片很大,在手机上显示会出现需要左右滑动的情况,那么我们就要做如下处理了,给图片加个样式

 data= data.replace(/<img/gi, '<img style="max-width:100%;height:auto;display:block" ');

换行

2、返回的数据中明明是有换行的,但是就是不生效,看不到效果,那么就又需要处理一下咯

data= data.replace(/\<p>&nbsp;<\/p>/gi, '<br/>');

空格

3、除了换行,也有空格不生效的,如下处理就好啦

data=data.replace(/\&nbsp;/gi, '\xa0')

视频

4、video节点不显示问题
思路:以video截取拆分成数组,然后页面渲染时这个数组显示内容

  • js处理,得到拆分好的数据数组
// 富文本视频解析
  getVideo(data) {
    let videoList = [];
    let videoReg = /<video.*?(?:>|\/>)/gi; //匹配到字符串中的 video 标签
    let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; //匹配到字符串中的 video 标签 的路径
    let arr = data.content.match(videoReg) || []; // arr 为包含所有video标签的数组
    let articleList = data.content.split('</video>') // 把字符串  从视频标签分成数组
    arr.forEach((item, index) => {
      var src = item.match(srcReg);
      videoList.push(src[1]) //所要显示的字符串中 所有的video 标签 的路径
    })
    let needArticleList = [];
    articleList.forEach((item, index) => {
      if (item != "" && item != undefined) { //  常见的标签渲染
        needArticleList.push({
          type: 'rich-text',
          value: item + "</video>"
        });
      }
      let articleListLength = articleList.length; // 插入到原有video 标签位置
      if (index < articleListLength && videoList[index] != undefined) {
        needArticleList.push({
          type: 'video',
          value: videoList[index]
        })
      }
    })
    return needArticleList
  },
  • wxml 页面渲染
 <view class="infoContentStyle" wx:for="{{data.needArticleList}}" wx:key="index">
      <rich-text wx:if="{{item.type=='rich-text'}}" class='content' nodes="{{item.value}}"></rich-text>
      <video wx:if="{{item.type=='video' && item.value}}" src="{{item.value}}"
        style="width:100%;height: 150px" frameborder="0"></video>
    </view>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

守望黑玫瑰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值