前言: 做项目过程中,经常遇到需要在小程序中展示用富文本编辑器生成的内容。包含着各种HTML标签和样式。这就需要用到rich-text组件。

具体用法:

1、index.wxml文件:

// nodes属性接收富文本内容,可以是字符串;
// 也可是数组,类似vue渲染函数,节点数组。
//富文本编辑器生成的一般是字符串,所以我们演示接收字符串。
<rich-text nodes="{{ content }}"></rich-text>

2、index.js文件:

  data: {
    content: '<p style="text-align: center;"><img src="https://defaultbucket-1308233582.cos.ap-shanghai.myqcloud.com/2eb467d1a9d34a5fa3922fc56a59ae16.jpeg"/></p><p><span style="font-family: 宋体;">我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本</span></span></p><p><span style="font-family: 宋体;">我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本我是一段文本</span></span></p>',
 },

3、显示效果

这里图片没有样式的,导致图片会按照原始大小显示,超出界面,文本段落也没有缩进。我们需要在js文件中使用正则来进行处理。

2、index.js文件:

onLoad: function () {
  const content = this.data.content.replace(/(\<img|\<p)/gi, function ($0, $1) {
    return {
      "<img": '<img style="width:100%;height:auto;display:block;" ',
      "<p": '<p style="text-indent: 24px;" ',
      "<article":"<div",
      "</article": "</div",
      "<header": "<div",
      "</header": "</div"
    }[$1];
  });
  this.setData({
    content
  });
},

3、显示效果

图片宽度设置到100%;文章段首增加缩进。还可以在正则里面增加更多样式设置。让效果更漂亮

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐