微信小程序富文本渲染引擎的详解


Posted in Javascript onSeptember 30, 2017

微信小程序富文本渲染引擎的详解

步骤

  • 把 wxParser 目录放到小程序项目的根目录下
  • 在需要富文本解析的 WXML 内引入 wxParser/index.wxml
  • 在页面 JS 文件内使用 wxParser.parse(options) 方法解析 HTML 内容
  • 在小程序项目根目录的 app.wxss 内引入 wxParser 的默认样式库

wxParser.parse(options) 方法的 options 参数说明

参数名 类型 必填 描述
bind String 要绑定的数据名称
html String HTML 内容
target Object 绑定数据的模块对象
enablePreviewImage Boolean 是否启用富文本内的图片预览功能,默认是
tapLink Function 点击超链接时的回调函数

示例

WXML:在需要用到富文本解析的文件夹下的 WXML 中引入 wxParser/index.wxml

// 将 WXML 引入需要富文本解析的文件下
<import src="../../wxParser/index.wxml"/>
<view class="wxParser">
 <template is="wxParser" data="{{wxParserData:richText.nodes}}"/>
</view>

JS:在需要用到富文本解析的文件夹下的 JS 中引入 wxParser 渲染引擎

// 在
const wxParser = require('../../wxParser/index');

Page({
 data: {},
 onLoad: function () {
  let that = this;
  let html = `<div style="color: #f00;">hello, wxParser!</div>`;

  wxParser.parse({
   bind: 'richText',
   html: html,
   target: that,
   enablePreviewImage: false, // 禁用图片预览功能
   tapLink: (url) => { // 点击超链接时的回调函数
    // url 就是 HTML 富文本中 a 标签的 href 属性值
    // 这里可以自定义点击事件逻辑,比如页面跳转
    wx.navigateTo({
     url
    });
   }
  });

 }
})

WXSS:在根目录的 app.wxss 内引入 wxParser 的默认样式库

@import '../wxParser/index.wxss'

注意

  • JS 中的 richText 可以自定义,但是必须要与 WXML 中的 richText 对应
  • 推荐把 template 放到 <view class="wxParser"></view> 内部,这样可以受 wxParser 控制并具有 wxParser 的一些默认样式
  • 不建议直接修改 wxParser 的默认样式(因为内容库样式会有定期更新),应该新增一个样式补丁文件用来自定义样式

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
通过JS 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
比较搞笑的js陷阱题
Feb 07 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
Mar 05 Javascript
JavaScript函数柯里化详解
Apr 29 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
BootStrap入门教程(二)之固定的内置样式
Sep 19 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
element-ui 上传图片后清空图片显示的实例
Sep 04 Javascript
vue实现日历备忘录功能
Sep 24 Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 Javascript
vue使用better-scroll实现滑动以及左右联动
Jun 30 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 Javascript
js实现数组和对象的深浅拷贝
Sep 30 #Javascript
node通过express搭建自己的服务器
Sep 30 #Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 #Javascript
详解在Vue中有条件地使用CSS类
Sep 30 #Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 #Javascript
vue按需引入element Transfer 穿梭框
Sep 30 #Javascript
vue获取DOM元素并设置属性的两种实现方法
Sep 30 #Javascript
You might like
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
ionic3 懒加载
2017/08/16 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
npm的lock机制解析
2019/06/20 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
python实现udp传输图片功能
2020/03/20 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
2014年客房部工作总结
2014/11/22 职场文书
社区植树节活动总结
2015/02/06 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
浅谈PHP7中的一些小技巧
2021/05/29 PHP
python 中yaml文件用法大全
2021/07/04 Python
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技