小程序本身並不太支持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