rich-text

富文本组件

属性名 类型 默认值 描述
nodes Array [] 只支持
节点列表

默认支持如下事件:

  • tap
  • touchstart
  • touchmove
  • touchcancel
  • touchend
  • longtap

说明:nodes 属性只支持使用 Array 类型。如果需要支持 HTML String,则需要自己将 HTML String 转化为 nodes 数组,可使用mini-html-parser转换。

nodes

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

元素节点

属性名 类型 说明 必填
type String 节点类型,默认值为 node。 否
name String 标签名,支持部分受信任的 HTML节点 是
attrs Object 属性,支持部分受信任的属性,遵循 Pascal 命名法 否
children Array 子节点列表,结构和 nodes 相同 否

支持的 HTML 节点及属性

支持 class 和 style 属性,不支持 ID 属性。

节点 属性
a -
abbr -
b -
blockquote -
br -
code -
col span, width
colgroup span, width
dd -
del -
div -
dl -
dt -
em -
fieldset -
h1 -
h2 -
h3 -
h4 -
h5 -
h6 -
hr -
i -
img alt, src, height, width
ins -
label -
legend -
li -
ol start, type
p -
q -
span -
strong -
sub -
sup -
table width
tbody -
td colspan, height, rowspan, width
tfoot -
th colspan, height, rowspan, width
thead -
tr -
ul -

代码示例

  1. <!-- page.axml -->
  2. <rich-text nodes="{{nodes}}" onTap="tap"></rich-text>
  1. // page.js
  2. Page({
  3. data: {
  4. nodes: [{
  5. name: 'div',
  6. attrs: {
  7. class: 'test_div_class',
  8. style: 'color: green;'
  9. },
  10. children: [{
  11. type: 'text',
  12. text: 'Hello&nbsp;World! This is a text node.'
  13. }]
  14. }]
  15. },
  16. tap() {
  17. console.log('tap')
  18. }
  19. })

说明:仅支持如下字符实体。其他字符实体会导致组件无法渲染。

显示结果 描述 实体名称
空格
< 小于号 <
> 大于号 >
& 和号 &
“ 引号 “
‘ 撇号 ‘

文本节点

属性名 类型 说明 必填
type String 节点类型 是
text String 文本 是