小程序富文本提取图片可放大缩小

  • 启发:
    • step1
    • step2
    • step3
    • step4
    • step5
    • 最后

启发:

因为最近有需求说在小程序商品的详情页里所有图片可以放大缩小,网上好像不太好找,就写了篇博客,供大家参考

step1

获取到富文本内容,怎么获取就是请求数据嘛,这个不在赘述了。

var nodes = res.data.data.content;

step2

检测 nodes中是否有img标签,这个有很多方法,我这里用的indexOf

if (nodes.indexOf("src") >= 0) {}

step3

第三步就是用正则全局匹配img标签,并且替换成空,这里setData是为了把图片添加到wxml显示的,说下match和captrue,第一个是带有img标签的返回值,第二个是src的值

//s3:正则匹配所有图片路径
var imgs = [];
nodes = nodes.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) {imgs.push(capture);that.setData({imgs: imgs});return '';
});

step4

最后就是把多余的p标签清除掉,影响样式

//s4:清除图片后正则匹配清除所有p标签
nodes = nodes.replace(/<p(([\s\S])*?)<\/p>/g, function (match, capture){return '';
});

完整的过程,本例亲测可行

//富文本图片放大
var nodes = res.data.data.content;
if (nodes.indexOf("src") >= 0) {//正则匹配所有图片路径var imgs = [];nodes = nodes.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) {imgs.push(capture);that.setData({imgs: imgs});return '';});//清除图片后正则匹配清除所有p标签nodes = nodes.replace(/<p(([\s\S])*?)<\/p>/g, function (match, capture){return '';});
}

end

step5

wxml中

<view class='detail'><rich-text nodes="{{nodes}}" bindtap='richImg'></rich-text>
</view>
<view class='detail1'><block wx:for="{{imgs}}" wx:key="" wx:for-item="item"><image class='img' src='{{item}}' bindtap='chooseImg' data-src='{{item}}'></image></block>
</view>

最后还有个预览的js

chooseImg: function (e) {   //预览var src = e.currentTarget.dataset.src;var urls = [];urls[0] = src;wx.previewImage({current: src, // 当前显示图片的http链接  urls: urls})
},

这里成功后可以需要调整图片的样式

最后

以上只是简单的demo,图片是连续的情况,但在富文本中可能会出现图片不连续,这个后续会贴出来,基本思路就是rich-text也是循环添加到wxml中,本例亲测可行,如有更好的方法,欢迎提出^^

小程序富文本提取图片可放大缩小相关推荐

  1. 微信小程序富文本修改图片的大小

    一.先言 有时后端直接返回的富文本内容,前端展示的时候会出现图片太大或太小,所以需要处理一下,,,实现并不难,主要是利用replace方法全局替换图片img标签的style样式,修改其宽度样式. 二. ...

  2. 微信小程序富文本中图片溢出,使用max-width无效

    wx微小程序中使用富文本,发现图片溢出. 使用replace替换<img> 为<img style="max-width:100%">无效时 可使用属性选择 ...

  3. 微信小程序富文本编辑器editor初体验-图片上传

    https://developers.weixin.qq.com/miniprogram/dev/component/editor.html 以前没有小程序富文本编辑器,只能输入文字,图片上传后,在服 ...

  4. 小程序富文本解析利器mp-html

    微慕小程序是资讯.媒体类小程序,因为对富文本内容和媒体内容的显示有较高的需求.对于富文本解析,微慕小程序以前采用的开源的wxParse组件,不过wxParse组件存在很多的问题且已经停止维护支持,随着 ...

  5. 小程序 富文本自适应屏幕_自适应文本:跨屏幕尺寸构建可读文本

    小程序 富文本自适应屏幕 Many of you may already know about responsive web design. Cited from Wikipedia, respons ...

  6. 微信小程序富文本编辑器获取内容

    1.新建wxParse文件夹 里面的结构是这样:wxParse :{ emojis (文件夹) html2json.js (文件) htmlparser.js(文件) showdown.js (文件) ...

  7. 微信小程序 富文本组件使用

    能够使用微信小程序提供的富文本组件及引入的第三方富文本组件 掌握使用微信小程序的表单组件 掌握使用微信小程序的form表单及如何提交数据 掌握使用微信小程序的导航及跳转组件 一.基础内容组件  1.1 ...

  8. 微信小程序富文本解析

    微信小程序富文本解析 *人狠话不多,直接代码搞起* html代码(后台返回的html代码) <p>这是一段文字</p><p><strong>这是加粗的字 ...

  9. layui获取select 文本_小程序富文本编辑器editor初体验

    终于,微信在5月9号的v2.7.0版本中新增了 editor富文本编辑器组件,今天有时间了准备体验一下 在5月6日的时候写了一篇小程序富文本解析的「伪需求」,从wxParse到towxml的坑,当时还 ...

最新文章

  1. Python开发基础总结之函数+闭包+字典+列表
  2. Palindrome Linked List
  3. 【数据库系统概论】考研第四部分重点分析【4.1】
  4. boost::fusion::insert_range用法的测试程序
  5. MyBatis基础:MyBatis关联查询(4)
  6. js大屏导出图片_整理了30个实用可视化大屏模板,附源文件+工具
  7. 命令注入_命令注入绕过方式总结
  8. 关于ecshop中jquery与js冲突解决的方案
  9. doxygen生成html文件,doxygen 的安装、配置、编译及使用(从源代码到文档)
  10. TPS、QPS、系统吞吐量、并发用户数区别及性能术语的理解
  11. Bootstrap 3 : 图片上传预览 image upload preview
  12. Java的四种引用——强软弱虚
  13. RStudio的help字体的调整大小
  14. java8新特性及汪文君Google Guava项目实战
  15. phpStudy + JspStudy 2014.10.02 下载
  16. DTCC 干货分享:Real Time DaaS - 面向TP+AP业务的数据平台架构
  17. RxSwift 学习:基础使用篇 - 序列 订阅 销毁
  18. 【图文保存为图片并下载到相册】海报 h5, 微信和 ios 不支持 和 用uniapp 微信小程序 使用canvas把页面转为图片保存到手机
  19. 运用Python抓取二手房价格与信息的两种常用方法
  20. 从 EuRoC MAV Dataset 的 .zip 文件生成 .bag 的 python 脚本

热门文章

  1. python读取文件获取其中一行的数据
  2. 《战舰世界》云游戏发布,元境提供技术支持,云端海战一触即发!
  3. 大数据| 数据可视化学习-高德地图可视化工具
  4. pipeline通过ssh远程执行命令的案例
  5. 联想游戏本 拯救者 Y7000P 连接上WiFi没有网络,无法开启移动热点
  6. MAC电脑SecureCRT配色方案
  7. 富士康登陆A股 工业互联网的盛宴
  8. 解决win10 耳机音质很差的问题
  9. 西安城市标识牌的缺陷
  10. 台式计算机消耗的电,计算机一天要消耗多少电量