后台传来的富文本有些并不能被rich-text
识别以及良好的展现,比如图片大小问题,我们后台传来的含有很多<u>标签,尽管官方文档显示小程序支持,但实践中并不可以,只好通过方法将其删除,还有<被转义成<这些。我们需要将其换成普通字符供rich-text
识别:
Page({
//html转义方法
escape2Html(str) {
var arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"' };
return str.replace(/&(lt|gt|nbsp|amp|quot);/ig, function (all, t) { return arrEntities[t]; }).replace(/<section/g, '<div').replace(/<img/gi, '<img style="max-width:100%;height:auto" ').replace(/<u>/g,'').replace(/<u style="">/g,'').replace(/<\/u>/g,'');
},
onLoad: function (options) {
var that=this;
//封装好的request方法
api('接口地址',Data).then(res=>{
if(res.data.code==1) {
//将数据进行转义,变成rich-text认识的样子
var introduce= that.escape2Html(res.data.data.introduce)
that.setData({
introduce:introduce,
})
}else {
wx.showModal({
title: '提示',
content: res.data.msg
})
}
})
})
})
wxml中:
<rich-text nodes="{{introduce}}"></rich-text>
网友评论