欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-12-31 15:55:14
最近项目上遇到在微信小程序里需要显示新闻内容,新闻内容是通过接口读取的服务器中的富文本内容,是html格式的,小程序默认是不支持html格式的内容显示的,那我们需要显示ht...

最近项目上遇到在微信小程序里需要显示新闻内容,新闻内容是通过接口读取的服务器中的富文本内容,是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>

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