rich-text 是一个富文本组件。基础库 1.11.0 开始支持,低版本需做兼容处理,操作参见 小程序基础库说明。
属性名 | 类型 | 默认值 | 描述 | 最低版本 |
---|---|---|---|---|
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 | - |
代码示例
<!-- page.axml -->
<rich-text nodes="{{nodes}}" onTap="tap"></rich-text>
// page.js
Page({
data: {
nodes: [{
name: 'div',
attrs: {
class: 'test_div_class',
style: 'color: green;'
},
children: [{
type: 'text',
text: 'Hello World! This is a text node.'
}]
}]
},
tap() {
console.log('tap')
}
})
说明:仅支持如下字符实体。其他字符实体会导致组件无法渲染。
显示结果 | 描述 | 实体名称 |
---|---|---|
空格 | ||
< | 小于号 | < |
> | 大于号 | > |
& | 和号 | & |
“ | 引号 | " |
‘ | 撇号 | ' |
文本节点
属性名 | 类型 | 说明 | 必填 |
---|---|---|---|
type | String | 节点类型 | 是 |
text | String | 文本 | 是 |
文档内容是否对您有帮助?