微信小程序使用wxParse解析html的实现示例


Posted in Javascript onAugust 30, 2018

最近项目上遇到在微信小程序里需要显示新闻内容,新闻内容是通过接口读取的服务器中的富文本内容,是html格式的,小程序默认是不支持html格式的内容显示的,那我们需要显示html内容的时候,就可以通过wxParse来实现。

首先我们在github上下载wxParse

https://github.com/icindy/wxParse

微信小程序使用wxParse解析html的实现示例

下载完之后我们需要用到目录下的wxParse文件夹,把他拷贝到我们的项目目录下

下面是具体的使用步骤

1.在app.wxss全局样式文件中,需要引入wxParse的样式表

@import "/page/wxParse/wxParse.wxss";

2.在需要加载html内容的页面对应的js文件里引入wxParse

var WxParse = require('../../wxParse/wxParse.js');

3.通过调用WxParse.wxParse方法来设置html内容

/**
* WxParse.wxParse(bindName , type, data, target,imagePadding)
* 1.bindName绑定的数据名(必填)
* 2.type可以为html或者md(必填)
* 3.data为传入的具体数据(必填)
* 4.target为Page对象,一般为this(必填)
* 5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选)
*/

Page({
 data: {
 },
 onLoad: function () {
  var that = this;
  wx.request({
    url: '', 
    method: 'POST',
    data: {
      'id':13
    },
    header: {
      'content-type': 'application/json'
    },
    success: function(res) {
      var article = res.data[0].post;
      WxParse.wxParse('article', 'html', article, that,5);
    }
  })
 }
})

4.在页面中引用模板

<import src="../../wxParse/wxParse.wxml"/>
<template is="wxParse" data="{{wxParseData:article.nodes}}"/>

这样就可以在微信小程序中嵌入html内容了

微信小程序使用wxParse解析html的实现示例

wxParse多数据循环使用方法

方法介绍

/**
* WxParse.wxParseTemArray(temArrayName,bindNameReg,total,that)
* 1.temArrayName: 为你调用时的数组名称
* 3.bindNameReg为循环的共同体 如绑定为reply1,reply2...则bindNameReg = 'reply'
* 3.total为reply的个数
*/
var that = this;
WxParse.wxParseTemArray("replyTemArray",'reply', replyArr.length, that)

使用方式

循环绑定数据

var replyHtml0 = `<div style="margin-top:10px;height:50px;"><p class="reply"> wxParse回复0:不错,喜欢[03][04] </p> </div>`; 
var replyHtml1 = `<div style="margin-top:10px;height:50px;"> <p class="reply"> wxParse回复1:不错,喜欢[03][04] </p> </div>`; 
var replyHtml2 = `<div style="margin-top:10px;height:50px;"> <p class="reply"> wxParse回复2:不错,喜欢[05][07] </p> </div>`; 
var replyHtml3 = `<div style="margin-top:10px;height:50px;"> <p class="reply"> wxParse回复3:不错,喜欢[06][08] </p> </div>`; 
var replyHtml4 = `<div style="margin-top:10px; height:50px;"> <p class="reply"> wxParse回复4:不错,喜欢[09][08] </p> </div>`; 
var replyHtml5 = `<div style="margin-top:10px;height:50px;"> <p class="reply"> wxParse回复5:不错,喜欢[07][08] </p> </div>`; 

var replyArr = []; 
replyArr.push(replyHtml0); 
replyArr.push(replyHtml1); 
replyArr.push(replyHtml2); 
replyArr.push(replyHtml3); 
replyArr.push(replyHtml4); 
replyArr.push(replyHtml5); 
for (let i = 0; i < replyArr.length; i++) { 
  WxParse.wxParse('reply' + i, 'html', replyArr[i], that); 
  if (i === replyArr.length - 1) { 
    WxParse.wxParseTemArray("replyTemArray",'reply', replyArr.length, that) 
  } 
}

模版使用

<block wx:for="{{replyTemArray}}" wx:key="">
    回复{{index}}:<template is="wxParse" data="{{wxParseData:item}}"/>
  </block>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript解决常见浏览器兼容问题的12种方法
Jan 04 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
Sep 16 Javascript
javascript将相对路径转绝对路径示例
Mar 14 Javascript
js获取鼠标位置实例详解
Dec 09 Javascript
ES6中非常实用的新特性介绍
Mar 10 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
Mar 03 Javascript
JS闭包可被利用的常见场景小结
Apr 09 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
Aug 24 Javascript
Vue-router 中hash模式和history模式的区别
Jul 24 Javascript
vue中npm包全局安装和局部安装过程
Sep 03 Javascript
vue修饰符.capture和.self的区别
Apr 22 Vue.js
vue中rem的配置的方法示例
Aug 30 #Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 #Javascript
vue-swiper的使用教程
Aug 30 #Javascript
分享vue里swiper的一些坑
Aug 30 #Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 #Javascript
小程序图片长按识别功能的实现方法
Aug 30 #Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 #Javascript
You might like
星际RPG字典
2020/03/04 星际争霸
php中的数组操作函数整理
2008/08/18 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Python中的True,False条件判断实例分析
2015/01/12 Python
使用pdb模块调试Python程序实例
2015/06/02 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
公司授权委托书
2014/04/04 职场文书
计算机专业自荐信
2014/05/24 职场文书
公务员诚信承诺书
2014/05/26 职场文书
销售员试用期自我评价
2014/09/15 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
教师辞职书范文
2015/02/26 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL