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


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的jqDnR拖拽溢出的修改
Feb 12 Javascript
JS模拟自动点击的简单实例
Aug 08 Javascript
Jquery Validate 正则表达式实用验证代码大全
Aug 23 Javascript
jquery ajax属性async(同步异步)示例
Nov 05 Javascript
JS实现遮罩层效果的简单实例
Nov 12 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
详解React开发必不可少的eslint配置
Feb 05 Javascript
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
VuePress 静态网站生成方法步骤
Feb 14 Javascript
jQuery AJAX应用实例总结
May 19 jQuery
javascript读取本地文件和目录方法详解
Aug 06 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实现rc4加密算法代码
2012/04/25 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
JS实现打字游戏
2019/12/17 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
python 全局变量的import机制介绍
2017/09/07 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
农村婚礼证婚词
2014/01/10 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
端午节活动策划方案
2014/03/09 职场文书
演讲稿格式范文
2014/05/19 职场文书
会计求职信
2014/05/29 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
Python开发五子棋小游戏
2022/05/02 Python