微信小程序富文本解析

在小程序开发过程中可能遇到这样的场景需要展示(商品、文章)详情,详情是一段html,里面图文混排。这时候就需要将html解析成小程序标签,更有甚者需要在小程序中操作html中的标签,比如做选中,批注,复制,粘贴等功能。
针对只做展示这种场景可以我们可以说曲线解决,把上传的商品详情做成图片,直接展示。当然这种方式固然好,但每次都得做成图片谁来做?
所以大多数情况下只能将html解析成效程序标签。在github(https://github.com/icindy/wxParse)上有一个很好用的原生组件wxparse可以解决富文本解析的问题。
使用方式:
一、在原生小程序中使用(官方demo)
1.目录
在这里插入图片描述
主要的源码就是wxParse文件夹,这个被封装成小程序模板的组件。使用方式可以按官方demo来。
在index.wxml文件中引入模板文件




在index.js中调用WxParse.wxParse(‘article’, ‘html’, article, that, 5),并将解析后的数据通过setData当前页面的data属性上,以便模板中引用
var that = this;
var article = ‘

我是HTML代码
’;
WxParse.wxParse(‘article’, ‘html’, article, that, 5);
wxParse方法参数的意义如下:
/**

  • WxParse.wxParse(bindName , type, data, target,imagePadding)
  • 1.bindName绑定的数据名(必填)
  • 2.type可以为html或者md(必填)
  • 3.data为传入的具体数据(必填)
  • 4.target为Page对象,一般为this(必填)
  • 5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选)
    */
    使用起来还是很方便的,但这里面也会遇到一些问题
    1.解析出来的html会将style标签,script标签中的内容也当文本解析
    2.没有做标签过滤,只能识别预定义的这这几种标签,对不识别的标签可能会解析错误
    3.setData时报invokeWebviewMethod 数据传输长度为 1233778 已经超过最大长度 1048576 的错误,导致错误
    解决办法:引入xss,进行标签过滤,属性过滤
    TODO:(未完待续…)
    1.使用xss过滤
    2.操作解析出来的小程序标签(dom)
    3.实现选中,批注,划重点(标记),插入用户信息。具体小过可以参考轻芒杂志小程序
    (今天先写到这里,如果看到还未更新完整就有人看到的话,有问题,请留言或者请联系本人)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值