微信小程序/支付寶小程序 WxParse解析富文本(html)代碼


小程序本身並不太支持html代碼,比如html的img、span、p這個時候改這么辦呢?需要用到一個小插件WxParse來實現。

小程序高級交流群:336925436

 微信小程序支持富文本編輯器代碼

一:下載:https://github.com/icindy/wxParse

 

二:將wxParse文件夾粘貼到項目

 

三:引入文件

index.js文件中引入

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

 

onLoad: function (e) {
    var article = '<div>我是HTML代碼<img src="http://image.chunshuitang.com/goods/401078.jpg"></img></div>';
    WxParse.wxParse('article', 'html', article, that, 5);   // 實例化對象
    
  }, 

 

index.wxss 

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

index.wxml

<import src="../wxParse/wxParse.wxml" />   // 引入文件
<view class="content {{tabArr.curBdIndex=='0'? 'active' : ''}}"><template is="wxParse" data="{{wxParseData:article.nodes}}"></view>   // 這段放入需要顯示的位置

 

 

拓展:在實際應用中wx.request和wxParse一起使用有可能會出現,ajax請求屬於同步與異步的問題,解決辦法如下

onLoad: function (e) {
    // 設置全局變量 商品id
    var that = this;
    that.gid = e.gid;
    
    // 獲取詳情
    that.requestGoodsInfo(that.gid);
    //console.log(that.data);

    //如果wxparse放這里,會出現數據為空(ajax異步這里是沒有數據的);
    //var article = '<div>我是HTML代碼<img src="http://image.chunshuitang.com/goods/401078.jpg"></img></div>';
    //WxParse.wxParse('article', 'html', article, that, 5);
    
  }, 

  // swiper  幻燈片
  
  // 獲取詳情
  requestGoodsInfo:function(gid){
    var that = this;
    var goodsInfo = api.url.goodsInfo;
    //console.log(goodsInfo);
    wx.request({
      url: "https://api.xxx.com/goods/index",
      method:'get',
      data:{gid:gid},
      success:function(res){
        //console.log(res.data.data);
        if(res.data.code ==0){
          that.setData({
            goods: res.data.data
          })
      // 這里是完美方案
//var article = '<div>我是HTML代碼<img src="http://image.chunshuitang.com/goods/401078.jpg"></img></div>'; // 這里是文字版 var article = res.data.data.content; // 這里是ajax請求數據 WxParse.wxParse('article', 'html', article, that, 5); }else{ wx.showLoading({ title: '數據出現故障', duration: 1000, }) } }, fail:function(){ wx.showLoading({ title: '網絡出現故障', duration: 1500 }) } }) },

 

 

其它:

- wxParse/
  -wxParse.js(必須存在)
  -html2json.js(必須存在)
  -htmlparser.js(必須存在)
  -showdown.js(必須存在)
  -wxDiscode.js(必須存在)
  -wxParse.wxml(必須存在)
  -wxParse.wxss(必須存在)
  -emojis(可選)

 

小程序支持富文本編輯器代碼

使用方法基本與微信小程序一樣,有幾個地方需要修改

1.文件引入樣式:@import "/wxParse/wxParse.acss";

2.引入js:var WxParse= require('../../wxParse/wxParse.js');

3.wxParse.wxml改名wxParse.axml,並且bindload(微信專用) 改為onLoad(支付寶專用)

<template name="wxParseImg">
  <image class="{{item.classStr}} wxParse-{{item.tag}}" data-from="{{item.from}}" data-src="{{item.attr.src}}" 
  data-idx="{{item.imgIndex}}" src="{{item.attr.src}}" onLoad="wxParseImgLoad" //此處要改
  bindtap="wxParseImgTap" mode="widthFix" style="width:{{item.width}}px;"/>
</template>

 

wxParse.axml改名wxParse.acss

4.wxParse.js 修改

// 微信小程序專用
/**
 * utils函數引入
 **/
import showdown from './showdown.js';
import HtmlToJson from './html2json.js';

// 支付寶小程序專用
import showdown from '/wxParse/showdown.js';
import HtmlToJson from '/wxParse/html2json.js';

5.html2json.js

// 微信小程序專用
var wxDiscode = require('./wxDiscode.js');
var HTMLParser = require('./htmlparser.js');
// 支付寶小程序專用
var wxDiscode = require('/wxParse/wxDiscode.js');
var HTMLParser = require('/wxParse/htmlparser.js');

 

總結:各種路徑修改要正確

 

小程序高級交流群:336925436

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM