博客列表 >微信小程序官方组件展示之基础内容rich-text源码

微信小程序官方组件展示之基础内容rich-text源码

软件事业部
软件事业部原创
2022年08月19日 09:28:23489浏览

以下将展示微信小程序之基础内容rich-text源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。
功能描述:
富文本。
属性说明:

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

文本节点:type = text

受信任的 HTML 节点及属性
全局支持 class 和style属性,不支持 id 属性。

Bug & Tip

  1. tip: nodes 不推荐使用 String 类型,性能会有所下降。
  2. tip: rich-text 组件内屏蔽所有节点的事件。
  3. tip: attrs 属性不支持 id ,支持 class 。
  4. tip: name 属性大小写不敏感。
  5. tip: 如果使用了不受信任的 HTML 节点,该节点及其所有子节点将会被移除。
  6. tip: img 标签仅支持网络图片。
  7. tip: 如果在自定义组件中使用 rich-text 组件,那么仅自定义组件的 wxss 样式对 rich-text 中的 class 生效。
    示例代码:
    JAVASCRIPT:
    ``javascript const htmlSnip =<div class="div_class">
    <h1>Title</h1>
    <p class="p">
    Life is <i>like</i> a box of
    <b> chocolates</b>.
    </p>
    </div>
    `

const nodeSnip =
Page({ data: { nodes: [{ name: 'div', attrs: { class: 'div_class', style: 'line-height: 60px; color: red;' }, children: [{ type: 'text', text: 'You never know what you're gonna get.' }] }] } })

Page({
onShareAppMessage() {
return {
title: ‘rich-text’,
path: ‘page/component/pages/rich-text/rich-text’
}
},

data: {
htmlSnip,
nodeSnip,
renderedByHtml: false,
renderedByNode: false,
nodes: [{
name: ‘div’,
attrs: {
class: ‘div_class’,
style: ‘line-height: 60px; color: #1AAD19;’
},
children: [{
type: ‘text’,
text: ‘You never know what you\’re gonna get.’
}]
}]
},
renderHtml() {
this.setData({
renderedByHtml: true
})
},
renderNode() {
this.setData({
renderedByNode: true
})
},
enterCode(e) {
console.log(e.detail.value)
this.setData({
htmlSnip: e.detail.value
})
}
})

  1. WXML
  2. ```xml
  3. <view class="container">
  4. <view class="page-body">
  5. <view class="page-section">
  6. <view class="page-section-title">通过HTML String渲染</view>
  7. <view class="page-content">
  8. <scroll-view scroll-y>{{htmlSnip}}</scroll-view>
  9. <button style="margin: 30rpx 0" type="primary" bindtap="renderHtml">渲染HTML</button>
  10. <block wx:if="{{renderedByHtml}}">
  11. <rich-text nodes="{{htmlSnip}}"></rich-text>
  12. </block>
  13. </view>
  14. </view>
  15. <view class="page-section">
  16. <view class="page-section-title">通过节点渲染</view>
  17. <view class="page-content">
  18. <scroll-view scroll-y>{{nodeSnip}}</scroll-view>
  19. <button style="margin: 30rpx 0" type="primary" bindtap="renderNode">渲染Node</button>
  20. <block wx:if="{{renderedByNode}}">
  21. <rich-text nodes="{{nodes}}"></rich-text>
  22. </block>
  23. </view>
  24. </view>
  25. </view>
  26. </view>


版权声明: 本站所有内容均由互联网收集整理、上传,如涉及版权问题,我们第一时间处理。
原文链接地址:
https://developers.weixin.qq.com/miniprogram/dev/component/rich-text.html

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议