如何处理后端返回的富文本内容展示到小程序查看文章内容详情
list.wpy文件通过wx.request请求列表到页面,该列表页点击进入查看列表内容详情HelpList.wpy。
示图=》
结果
由于微信小程序自定义了标签,但是富文本返回了H5标签在内,针对该问题,小程序中应该如何处理?
list.wpy文件通过wx.request请求列表到页面,该列表页点击进入查看列表内容详情HelpList.wpy。
示图=》
结果
由于微信小程序自定义了标签,但是富文本返回了H5标签在内,针对该问题,小程序中应该如何处理?
rich-text不需要按文档这样写,他这样写是数组形式,我用的是string形式,就是把内容直接赋值给nodes就行了,但是rich-text经过我测试比较坑,对图片的解析太不友好,完全显示的原图,所以就用wxParse就好了
我github选的 参考文档是: https://github.com/ifanrx/wxParser
那个选的rich-text 还要自己解析 data.content富文本片段的吧?这样子就真的麻烦起来了。
<style> @import '../wxParser/index.wxss'; .wrap{padding: 0 10px;}</style><template> <view class="page"> <view class="page__hd"> <view class="page__title"> wxParser </view> <view class="page__desc"> 小程序富文本示例 </view> </view> <view class="page__bd wrap"> <view> 参考文档: https://github.com/ifanrx/wxParser </view> <import src="../wxParser/index.wxml" /> <view class="wxParser"> <template is="wxParser" data="{{wxParserData:richText.nodes}}" /> </view> <rich-text nodes="{{nodes}}" bindtap="tap"> </rich-text> </view> </view></template><script> import wepy from 'wepy'; const wxParser = require('../wxParser/index'); export default class WxParserDemo extends wepy.page { data = { nodes: [{ name: 'div', attrs: { class: 'div_class', style: 'line-height: 60px; color: red;' }, children: [{ type: 'text', text: 'Hello World!' }] }] } methods = { tap() { console.log('tap') } } onLoad() { var self = this; var Html = "<div><a href='https://mp.weixin.qq.com'>微信小程序</a><strong>富文本</strong>示例</div>"; // var Html="<div>微信小程序<strong>富文本</strong>示例</div>"; wxParser.parse({ bind: 'richText', html: Html, target: this, enablePreviewImage: false, // 禁用图片预览功能 tapLink: function(url) { // 点击超链接时的回调函数 // url 就是 HTML 富文本中 a 标签的 href 属性值 // 这里可以自定义点击事件逻辑,比如页面跳转 console.log("url=>", url); wx.navigateTo({ url: url }); } }); } }</script> |
更新一下,对比了下wxParse和rich-text组件,我发现如果富文本里面有特别大的图片,rich-text这个组件显示图片的时候是直接显示原大小的,直接超出屏幕了,而wxParse能显示出来整张图片,并且还可以通过外包view标签来设置整体宽度等等;不过也可能rich-text跟我直接用string类型有关系吧