小程序rich-text组件如何改变内部img图片样式的方法


Posted in Javascript onMay 22, 2019

一、起因

小程序中有一个页面,很奇葩,是通过后端传过来的整段HTML字符串展示内容的,那么我们暂时叫这个页面为content,传过来之后,他里面的图片样式是不固定的,有的大,有的小,有的有style有的没有,那我怎么能让他统一展示成一样的样式呢?

二、办法

思前想后,我觉得还是正则比较靠谱,把content里面所有的img标签筛选出来,把里面有style的、有width的、有height的、全部删除掉,最后在统一加上我们想要的样式,最终代码如下:

<RichText nodes={content} />

下面是HTML字符串处理过程

let html = content
      .replace(/<p([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<p')
      .replace(/<p>/ig, '<p style="font-size: 15Px; line-height: 25Px;">')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(height="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(width="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(style="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(alt="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)/ig, '<img$1 style="width: 100%; border-radius: 8Px;"');

最终实现了我们想要的样式统一的效果啦~

三、总结

我有想过直接在less里面取到img,然后改变它的样式,这种办法在h5中是可行的,但是在小程序中不起作用!因为在小程序中会是一整个rich-text标签,里面的内容样式无法修改。所以采用这种办法啦~~能够解决问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 实现复制到粘贴板的功能代码
May 13 Javascript
javascript onmouseout 解决办法
Jul 17 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
Jul 31 Javascript
Jquery动态更改一张位图的src与Attr的使用
Jul 31 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
vue2.0 循环遍历加载不同图片的方法
Mar 06 Javascript
微信小程序多音频播放进度条问题
Aug 28 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
Feb 16 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
JavaScript中的 new 命令
May 22 #Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 #Javascript
原生JS实现列表内容自动向上滚动效果
May 22 #Javascript
小程序如何使用分包加载的实现方法
May 22 #Javascript
原生js实现trigger方法示例代码
May 22 #Javascript
koa router 多文件引入的方法示例
May 22 #Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 #Javascript
You might like
php 常用类整理
2009/12/23 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
python发布模块的步骤分享
2014/02/21 Python
python实现SMTP邮件发送功能
2020/06/16 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
pytorch简介
2020/11/11 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
海外淘书首选:AbeBooks
2017/07/31 全球购物
车间班长岗位职责
2013/11/30 职场文书
2014年党课学习材料
2014/05/11 职场文书
校庆标语集锦
2014/06/25 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
英文感谢信范文
2015/01/21 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
如何在Python中妥善使用进度条详解
2022/04/05 Python