首页 > 其他分享 >UNI APP 利用过滤器 解决后台返回带标签的内容时 图片过大的问题

UNI APP 利用过滤器 解决后台返回带标签的内容时 图片过大的问题

时间:2024-03-20 15:33:43浏览次数:26  
标签:style APP replace width match 过滤器 UNI newContent gi

https://www.shanhubei.com/archives/51233.html

后台返回的数据有时候没有过滤带标签,平时就只能v-html渲染出来,但是如里面有图片的话 会出现图片过大超出屏幕的问题,那么普通的加样式已经不会生效了,就只能想办法来解决了。

代码演示,

解决办法呢,也很简单、只要利用好过滤器就好了。

1.html部分,这个是你要渲染的数据,‘formatRichText’这个就是过滤器的属性名

 <rich-text :nodes="product.detailMobileHtml|formatRichText"></rich-text>    

2.js部分

filters: {
              /**
               * 处理富文本里的图片宽度自适应
               * 1.去掉img标签里的style、width、height属性
               * 2.img标签添加style属性:max-width:100%;height:auto
               * 3.修改所有style里的width属性为max-width:100%
               * 4.去掉<br/>标签
               * @param html
               * @returns {void|string|*}
               */
              formatRichText (html) { //控制小程序中图片大小
                  let newContent= html.replace(/<img[^>]*>/gi,function(match,capture){
                      match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
                      match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
                      match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
                      return match;
                  });
                  newContent = newContent.replace(/style="[^"]+"/gi,function(match,capture){
                      match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
                      return match;
                  });
                  newContent = newContent.replace(/<br[^>]*\/>/gi, '');
                  newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"');
                  return newContent;
              }
                },

 

标签:style,APP,replace,width,match,过滤器,UNI,newContent,gi
From: https://www.cnblogs.com/shanhubei/p/18085342

相关文章

  • 个人开发App成功上架手机应用市场的关键步骤
    在当前移动应用市场竞争激烈的背景下,个人开发App如何成功上架成为开发者们必须面对的重要任务。本文将重点介绍自建App上架至手机应用市场的流程,包括苹果审核、APP备案、APPStore审核以及上线工作,旨在帮助开发者顺利将自建App推向市场并提升应用可见性。近年来,个人开发App备受瞩......
  • uni-app、uview开发时的三种富文本渲染方案
    来源:https://www.shanhubei.com/archives/51231.html1.使用vue语法的v-html<!--使用v-html渲染富文本--><!--<viewv-html="`<h1>富文本</h1><h2>富文本</h2><h3>富文本</h3>`"></view>-->2.使用小程序标签rich-text&l......
  • 鸿蒙App开的的另一种捷径——小程序组装
    如今,鸿蒙开发日益受到广大开发者的关注,而小程序开发也早已成为互联网领域的热门话题。那么,我们不禁要问:是否有可能将这两者融为一体,将小程序开发的便捷与高效带入鸿蒙生态中呢?本文将首先带你回顾小程序与鸿蒙开发的历史与现状,随后,我们将一同探索一种全新的小程序开发模式,一同见证......
  • 【Unity】进度条和血条的三种做法
    前言在使用Unity开发的时候,进度条和血条是必不可少的,本篇文章将简单介绍一下几种血条的制作方法。1.使用SliderSlider组件由两部分组成:滑动区域和滑块。滑动区域用于显示滑动条的背景,而滑块则表示当前的数值位置。用户可以通过拖动滑块来改变数值。新建Slider,右键选择UI......
  • 现代化方式打造CSAPP环境
    前情提要距离我上次尝试完成Csapp已是一年前,在期末周时迅速放弃了两年前的环境搭建ArchLinux本地一把梭,出于对本地环境的隔离与保护这次将使用容器化技术+Vscode搭建尽量避免对本机的影响,以及达到对环境更好的管理与备份。yay-Sdockersudouseradd-aGdocker$USER#......
  • java毕设安卓基于vue的历史博物馆APP(开题+源码)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,移动互联网已经成为现代人生活不可或缺的一部分。智能手机普及率的提升,使得移动应用(APP)成为连接用户与服务的重要桥梁。历史......
  • java毕设安卓高校信息查询app(开题+源码)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,移动互联网已经成为人们获取信息、交流沟通的重要渠道。高等教育作为人才培养的重要基地,其信息的公开与获取对于考生和家长来......
  • unity 设计一个日志系统需要注意什么
    在Unity中设计一个日志系统时,需要注意以下几点:日志级别:为了便于管理和过滤日志,可以为日志系统定义不同的日志级别,例如:Debug、Info、Warning、Error和Fatal。在输出日志时,可以根据当前设置的日志级别来决定是否输出该条日志。日志分类:为了便于查找和分析问题,可以为日志系统定......
  • windows下启停jar并指定application.yml配置文件
    启动脚本start.bat@echooffREM设置jar文件名和application.yml文件名setJAR_FILE=xxx-boot.jarsetYML_FILE=application-prod.ymlsetACTIVE=prodsetPORT=8080REM启动jar:startjava-jar%JAR_FILE%--server.port=%PORT%--spring.profiles.active=%ACTIVE%--s......
  • 快速上手App自动化测试利器,Toast原理解析及操作实例
    简介Toast是一种轻量级的消息提示,常常以小弹框的形式出现,一般出现1到2秒会自动消失,可以出现在屏幕上中下任意位置。Toast具有如下的特点:无法被点击,不同于Dialog,永远不会获得焦点。Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失是系统级别的控件,属于......