【愚公系列】2022年08月 微信小程序-富文本中预览图片原生使用

举报
愚公搬代码 发表于 2022/08/31 21:31:05 2022/08/31
【摘要】 前言富文本格式(Rich Text Format)即RTF格式,又称多文本格式,是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。它是一种方便于不同的设备、系统查看的文本和图形文档格式。RTF使用美国国内标准协会(ANSI)、 PC-8、 Macintosh(mac苹果),或 IBM 的 PC 字符设置控制显示形式和打印形式。在不同的操作系统下创建的RTF文档...

前言

富文本格式(Rich Text Format)即RTF格式,又称多文本格式,是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。它是一种方便于不同的设备、系统查看的文本和图形文档格式。

RTF使用美国国内标准协会(ANSI)、 PC-8、 Macintosh(mac苹果),或 IBM 的 PC 字符设置控制显示形式和打印形式。在不同的操作系统下创建的RTF文档可以在多种操作系统和应用程序之间互相传输、查看。其作为 MS-DOS、 Microsoft Windows、 OS/2、 Macintosh苹果系统,应用程序之间处理文档的特殊翻译软件。

微信小程序富文本属性:

属性 类型 默认值 必填 说明 最低版本
nodes array/string [] 节点列表/HTML String 1.4.0
space string 显示连续空格 2.4.1

nodes子属性

现支持两种节点,通过type来区分,分别是元素节点和文本节点,默认是元素节点,在富文本区域里显示的HTML节点

1、元素节点:type = node

属性 说明 类型 必填 备注
name 标签名 string 支持部分受信任的 HTML 节点
attrs 属性 object 支持部分受信任的属性,遵循 Pascal 命名法
children 子节点列表 array 结构和 nodes 一致

2、文本节点:type = text

属性 说明 类型 必填 备注
text 文本 string 支持entities

一、富文本使用

1.富文本中预览图片原生使用

<rich-text space="emsp" nodes="{{nodes}}" bindtap="tap"></rich-text>
data: {
  // 示例 1 代码
  nodes: [{
    name: 'div',
    attrs: {
      class: 'div_class',
      style: 'line-height: 20px;padding:20px;'
    },
    children: [
      {
        type: 'text',
        text: '小程序实践'
      }, {
        name: 'img',
        attrs: {
          src: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.daimg.com%2Fuploads%2Fallimg%2F140505%2F1-140505004P3.jpg&refer=http%3A%2F%2Fimg.daimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1663946818&t=f4155ceebdd0eb509fd172de7feef3c1',
          style: 'width:100%'
        }
      }, {
        name: 'img',
        attrs: {
          src: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic%2F54%2F7f%2F7e%2F547f7eea46e505ecc72a30708959169d.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1663946818&t=a5f8d704887bf93acbcd016e6c220d71',
          style: 'width:100%'
          // ,style:'width:100%;font-size:0;display:block;'//修改样式
          ,class: 'img'
        }
      }, {
        name: 'img',
        attrs: {
          src: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.pconline.com.cn%2Fimages%2Fupload%2Fupc%2Ftx%2Fphotoblog%2F1308%2F11%2Fc7%2F24373320_24373320_1376225083921.jpg&refer=http%3A%2F%2Fimg.pconline.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1663946817&t=abb1d293958695bb875b39a70d79a7b5',
          style: 'width:100%'
        }
      }
    ]
  }],
  urls: [],
},
tap(e) {
  let urls = this.data.urls
  wx.previewImage({
    current: urls[0],
    urls: urls
  })
},
onReady() {
  // 取出 urls
  function findUrl(nodes) {
    let urls = []
    nodes.forEach(item => {
      if (item.name == 'img' && item.attrs) {
        for (const key in item.attrs) {
          if (key == 'src') {
            urls.push(item.attrs[key])
          }
        }
      }
      if (item.children) {
        urls = urls.concat(findUrl(item.children))
      }
    })
    return urls
  }
  this.data.urls = findUrl(this.data.nodes)
},

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。