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


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 相关文章推荐
jQuery 中关于CSS操作部分使用说明
Jun 10 Javascript
基于Jquery实现表格动态分页实现代码
Jun 21 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
js实现移动端微信页面禁止字体放大
Feb 16 Javascript
jquery仿微信聊天界面
May 06 jQuery
Javascript格式化并高亮xml字符串的方法及注意事项
Aug 13 Javascript
vue+element-ui实现表格编辑的三种实现方式
Oct 31 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 Javascript
深入解析微信小程序开发中遇到的几个小问题
Jul 11 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
Aug 30 Javascript
vue项目配置同一局域网可使用ip访问的操作
Oct 23 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
PHP下MAIL的另一解决方案
2006/10/09 PHP
PHP中for循环语句的几种变型
2006/11/26 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
JQuery datepicker 使用方法
2011/05/20 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
深入研究React中setState源码
2017/11/17 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
Python httplib模块使用实例
2015/04/11 Python
Python通过select实现异步IO的方法
2015/06/04 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
流动人口婚育证明
2014/10/19 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
公司文体活动总结
2015/05/07 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server