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


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 相关文章推荐
xml转json的js代码
Aug 28 Javascript
JavaScript获取表单内所有元素值的方法
Apr 02 Javascript
jquery实现的简单二级菜单效果代码
Sep 22 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
Jan 09 Javascript
JS 60秒后重新发送验证码的实例讲解
Jul 26 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
如何实现双向绑定mvvm的原理实现
May 28 Javascript
node.js实现上传文件功能
Jul 15 Javascript
简单谈谈javascript高级特性
Sep 04 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
前端JS获取URL参数的4种方法总结
Apr 05 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 FPDF类库应用实现代码
2009/03/20 PHP
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Python中装饰器的一个妙用
2015/02/08 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
python3 拼接字符串的7种方法
2018/09/12 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
数学专业推荐信范文
2013/11/21 职场文书
药学专业大专生的自我评价
2013/12/12 职场文书
项目考察欢迎辞
2014/01/17 职场文书
借款协议书范本
2014/04/22 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
经理聘任证明
2015/03/02 职场文书
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang