加载提示
支持在 mp-html 标签内部放上自定义的加载提示,内容未加载完成(或为空)时将显示,加载完成后自动隐藏
<mp-html>加载中...</mp-html>
html
<!-- 显示时使用 xxx,预览时使用 yyy -->
<img src="xxx" original-src="yyy" />
设置方式 2:通过 imgList 的 api 进行设置
装饰图片处理
有时对于一些小的装饰性图片,可能不希望产生上述效果,此时可以给 img 标签设置 ignore 属性,将屏蔽预览、弹出菜单等操作,提升体验
<!-- 设置 ignore 属性后这张图片不可预览、不会弹出菜单 -->
<img src="xxx" ignore />
在链接内的、src 为 data url 且没有设置 original-src 的图片,默认为不可预览的小图片
html
<!-- 该链接被点击后将跳转到 /pages/test/test 页面 -->
<a href="/pages/test/test">链接</a>
复制外部链接
对于外部链接,由于小程序无法直接打开,将自动复制到剪贴板,如不需要,可通过 copy-link 属性关闭
?> 设置 a 标签的 href 属性时,如果是外部链接需将协议名 http:// 写完整,否则会被认为是内部路径并尝试跳转
除这些默认的处理外,还可以在 linktap 事件中进行自定义处理
附渲染原理:
小程序中没有 table 标签,使得显示表格一直是一个难题,本组件主要通过以下三种方式显示表格
| 显示方式 | 适用情况 | 说明 |
|---|---|---|
| rich-text 标签 | 表格内部没有链接、图片等特殊标签 | 效果最佳,几乎不需要进行转换 |
| table 布局 | 表格内有特殊标签但没有使用合并单元格 | 需要进行一定转换,将 table, tr, td 等标签转为对应的布局 |
| grid 布局 | 表格内有特殊标签且使用了合并单元格 | 需要进行复杂的转换将合并单元格用 grid 布局表现出来 |
多源加载
不同平台支持播放的格式不同,只设置一个 src 可能会出现兼容性问题导致无法播放,因此本组件支持像 html 中一样给 video 和 audio 设置多个 *source*,将按照顺序进行加载,直到可以播放,最大程度上避免无法播放
<!-- 组件将依次加载 xxx 和 yyy -->
<video controls>
<source src="xxx">
<source src="yyy">
</video>
样式(*css*)是富文本中最重要的内容之一,本组件提供多种样式设置的方法,可以进行灵活的设置
需要调整优先级时,可以通过设置 !important 实现
另外,通过引入 style 插件,还可以实现匹配 style 标签中样式的功能
本组件支持以下标签和属性:
| 标签 | 属性 |
|---|---|
| a | href |
| abbr | |
| address | |
| article | |
| aside | |
| audio | author, controls, loop, name, poster, src |
| b | |
| base | href |
| big | |
| blockquote | |
| body | |
| br | |
| caption | |
| center | |
| cite | |
| code | |
| col | span |
| colgroup | span |
| dd | |
| del | |
| div | |
| dl | |
| dt | |
| em | |
| embed | autostart, loop, src, type |
| fieldset | |
| font | color, face, size |
| footer | |
| h1 | |
| h2 | |
| h3 | |
| h4 | |
| h5 | |
| h6 | |
| head | |
| header | |
| hr | |
| html | |
| i | |
| img | ignore, original-src, src |
| ins | |
| label | |
| legend | |
| li | |
| mark | |
| nav | |
| ol | start, type |
| p | |
| pre | |
| q | |
| rt | |
| ruby | |
| s | |
| section | |
| small | |
| source | src |
| span | |
| strike | |
| strong | |
| style | |
| sub | |
| sup | |
| table | border, cellpadding, cellspacing |
| tbody | |
| td | colspan, rowspan |
| tfoot | |
| th | colspan, rowspan |
| thead | |
| tr | |
| tt | |
| u | |
| ul | |
| video | autoplay, controls, loop, muted, object-fit, poster, src |
说明:
本组件的解析脚本能够支持多种 html 格式,具有强大的稳定性:
同时,对于一些错误情况,程序也能够自动处理:
以下情况均能正确解析:
<!-- 不同的属性格式 -->
<font face="宋体" color='green' size=7>Hello</font>
<!-- 标签首尾不匹配或未闭合 -->
<div> World</section>
<!-- 大小写搭配 -->
<dIv StYle="color:green">!</DIv>