小程序插件wxParse解析处理HTML代码 | 熊阿哥博客

小程序插件wxParse解析处理HTML代码

微信   2024-12-28 08:11   96   0  

wxParse是一个微信小程序富文本解析组件,支持支持Html及markdown转wxml。

下载wxParse:https://github.com/icindy/wxParse

解压后将wxParse文件夹复制到小程序项目根目录下。

wxParse目录中的文件列表:

wxParse/

  -wxParse.js(必须存在)

  -html2json.js(必须存在)

  -htmlparser.js(必须存在)

  -showdown.js(必须存在)

  -wxDiscode.js(必须存在)

  -wxParse.wxml(必须存在)

  -wxParse.wxss(必须存在)

  -emojis(可选)


在app.wxss全局样式文件中引入:

@import "/wxParse/wxParse.wxss";


在需要加载html页面js文件里引入:

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


通过调用WxParse.wxParse(1,2,3,4,5)方法来设置html内容:

1.bindName绑定的数据名(必填)

2.type可以为html或者md(必填)

3.data为传入的具体数据(必填)

4.target为Page对象,一般为this(必填)

5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选)

var article = '<div>我是HTML代码</div>';
var that = this;
WxParse.wxParse('article', 'html', article, that, 5);


JS页面示例:

var WxParse = require("../../wxParse/wxParse.js");//引入wxParse.js
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);
} 
}) 
 }
})


在页面中引用模板:

<import alt="微信小程序中显示html格式内容的方法" src="../../wxParse/wxParse.wxml"/>
<template is="wxParse" data="{{wxParseData:article.nodes}}"/>

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


wxParse多数据循环使用方法

1. 方法介绍:

/**
* 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)

2. 使用方式

//循环绑定数据
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) 
  } 
}

3. 模版使用

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


官方小程序已经有富文本渲染html的解决方案:

<rich-text nodes="{{htmlContent}}"></rich-text>

官方链接:https://developers.weixin.qq.com/miniprogram/dev/component/rich-text.html




博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。