[微信小程序踩坑]微信小程序editor富文本组件渲染字符串时,内部图片超出大小导致无法正常渲染或回显(数据传输长度为 3458 KB,存在有性能问题!)
坑一:回显问题
富文本组件:
<editor id="editor" name="{{name}}" style="font-size: 28rpx;color: #C9CDD4" read-only="{{true}}" placeholder="{{placeholder}}" bind:input="onChange11" ></editor>
回显方法:
_onEditorReady: function (html: any) {const that = this as anythat.createSelectorQuery().select('#editor').context(async function (res: any) {that.editorCtx = res.contextawait that.editorCtx.setContents({ //将html回显富文本区域html,success: function (res: any) {},fail: function (fail: any) {},complete: function (bbxx: any) {}})}).exec()},
bug复现:
数据:"<p>杰佛的撒娇佛是阿达分阶段实施的佛教的撒<img src="data:image/jpeg;base64,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" alt="" width="344" height="340" />发动机撒佛啊但是佛教的撒发的撒娇佛就是发撒娇的佛菩萨</p>"
当字符串中包含base64图片,且base64图片超过1024kb就会被微信机制拦截下来(官方文档有说明)导致整个组件无法正常渲染,包括img标签前的文字
解决方案(三种)
1:和后端协调,将base64转为在线url地址(例如oss地址),完美解决
2:对于性能考虑,如果是双端(pc+移动),建议做文件大小判断,文件过大的话建议提示到pc端查看或操作
再数据初始化的时候,先调用如下方法,获得该字符串的实际大小,然后在按需处理,下面做具体举例
getStringSize(str: string) {var myString = str;// 使用 TextEncoder 将字符串编码为字节数组var textEncoder = new TextEncoder();var encodedData = textEncoder.encode(myString);// 计算字节数var byteSize = encodedData.length;// 将字节数转换为 KBvar kbSize = Math.floor(byteSize / 1024);return kbSize},
const str = '你要渲染的富文本字符串'const realSize = this.getStringSize(str)if(realSize >=1024) {提示用户,该文本域内存在较大图片,请到pc端查看
} else {this._onEditorReady(str)
}
3:将base64转为本地url以此绕过大小拦截并成功渲染
非得渲,那就渲吧,思路就是base64有实际大小会被检测到,处于项目原因又不能使用线上url,那就将base64转本地url再替换渲染字符串中的base64,就可以完美绕开大小检测,下面做具体举例
base64ToUrl(base64Data: string, name: string) {// 保存的文件名(考虑一个string内可能有多个img标签,使用随机数确保name唯一)const FILE_BASE_NAME = 'temp_base64_image' + name + Math.floor(Math.random() * 90); // 将 base64 数据写入本地文件const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.png`;fsm.writeFileSync(filePath, base64Data, 'base64');// 获取本地图片 URLreturn filePath;},// 替换字符串中的<img>标签中的base64为本地URLreplaceBase64WithLocalUrl(inputString: string, name: string) {const regex = /<img\s+src="data:image\/[^;]+;base64,([^"]+)"/g; //获取base64数据区间// 将base64区间替换为本地图片url绕过setdata1024kb检测const replacedString = inputString.replace(regex, (match, base64Data) => { const localImageUrl = this.base64ToUrl(base64Data, name);return `<img src="${localImageUrl}"`;});return replacedString;},
const str = '你要渲染的富文本字符串'str = this.replaceBase64WithLocalUrl(str)this._onEditorReady(str)
坑二:回显图片样式问题
这下图片能正常回显了,无论图片多大多小,但是偶尔有一些超大图会有宽高比例失调原因,第一种方案是用正则给所有img标签设置style=" width:100%;height:100%;object-fit: cover;"也好,设置style=" width:100%;height:auto;"也罢,总之就是不行,于是翻查文档发现
img中如果存在行内style(自带、后台配置),那么自己写的style将会被覆盖,所以正确的方法是给所有img标签设置class ,下面做具体示例
this._onEditorReady(str.replace(/<img/g, '<img class="rich-img" ')).rich-img {width: 100%;height: 100%;object-fit: cover;
}
至此,所有坑填完
生命不息,学习不止,键盘敲烂,月薪过万!加油,代码人!
相关文章:

[微信小程序踩坑]微信小程序editor富文本组件渲染字符串时,内部图片超出大小导致无法正常渲染或回显(数据传输长度为 3458 KB,存在有性能问题!)
坑一:回显问题 富文本组件: <editor id"editor" name"{{name}}" style"font-size: 28rpx;color: #C9CDD4" read-only"{{true}}" placeholder"{{placeholder}}" bind:input"onChange11"…...
USACO12OPEN Balanced Cow Subsets G(meet in the middle)
洛谷P3067 [USACO12OPEN] Balanced Cow Subsets G 题目大意 我们定义一个奶牛集合 S S S是平衡的,当且仅当满足以下两个条件: S S S非空 S S S可以被划分为两个集合 A , B A,B A,B,满足 A A A里的奶牛产量之和等于 B B B里的牛奶产量之和 …...
GIT常用操作记录
1、后悔药:强制回退到某个具体历史提交记录,并强制推送到远程仓库 强制回退到某个具体历史提交记录,即要删除它之后的所有提交,可以用 git reset 命令。 首先找到目标提交记录的ID,可以在github远程仓库的历史提交记…...

【ETL工具】Datax-ETL-SqlServerToHDFS
🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!&…...
Kubernetes (K8S)概述
1、K8S 是什么? K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。 1.1 作用 用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。 可以…...

11月14号|Move生态Meetup相约浪漫土耳其
Move是基于Rust编程语言,由Mysten Labs联合创始人兼CTO Sam Blackshear在Meta的Libra项目中开发而来,旨在为开发者提供比现有区块链语言更通用的开发语言。Sam的目标是创建Web3的JavaScript,即一种跨平台语言,使开发人员能够在多个…...
mac vim没有颜色 问题
vim ~/.vimrc syntax on set nu! set autoindent...

Servlet核心API
目录 HttpServlet init destory service 实例:处理get、post、put、delete请求 1.通过postman得到请求 2.通过ajax得到请求 HttpServletRequest 常见方法 前端给后端传参 1.GET,query string 2.POST,form 3.POST,json HttpSeverletRespons…...

crs 维护模式 exclusive mode
How To Validate ASM Instances And Diskgroups On A RAC Cluster (When CRS Does Not Start). (Doc ID 1609127.1)编辑To Bottom [rootrac1 ~]# ps -ef|grep grid root 2477 1 1 20:47 ? 00:00:51 /opt/oracle.ahf/jre/bin/java -server -Xms32m -Xmx64…...

【OpenCV实现平滑图像形态学变化】
文章目录 概要目标腐蚀膨胀开运算结构元素(内核)小结 概要 形态学变化是一组简单的图像操作,主要用于处理二值图像,即只包含黑和白两种颜色的图像。这些操作通常需要两个输入,原始图像和一个内核(kernel&a…...
Ubuntu服务器中java -jar 后台运行Spring Boot项目
问:我在我的服务器中java -jar 运行springboot项目,但是我操作不了命令了,必须要终止掉才能执行后面的操作,怎么样才能让他后台运行呢?比如我的jar包名是tools-boot-0.0.1-SNAPSHOT.jar 使用nohup命令: 在…...
微服务parent工程和子工程pom文件配置注意
parent工程 重要配置: <!-- 父工程 --><packaging>pom</packaging><!-- 聚合 --><modules><module>../base</module><module>../gateway</module><module>../user-service</module><mod…...

STM32G030F6P6点灯闪烁
前言 (1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动实习岗位,可C站直接私聊,或者邮件:zhangyixu02gmail.com,此消息至2025年1月1日前均有效 (2࿰…...
K8s开发人员也需要了解的相关知识
工作变动总结一下之前的笔记,整理一个速查的东西,方便之后查阅 K8s开发相关 1、k8s yml apiverison: Kubernetes (k8s) 的 API 版本表示资源定义在 API 服务器中的稳定性和支持程度。API 版本由一个字符串表示,如 v1 或 apps/v1,…...

创建并启动华为HarmonyOS本地与远程模拟器及远程真机
1.打开设备管理器 2.选择要添加的手机设备,然后点击安装 3.正在下载华为手机模拟器 4.下载完成 5.创建新模拟器 下载系统镜像 点击下一步,创建模拟器 创建成功 启动模拟器 华为模拟器启动成功 6.登陆华为账号并使用远程模拟器 7.使用远程真机...

责任链模式应用案例
前几天系统商品折扣功能优化,同事采用了责任链模式重构了代码,现整理如下。 一、概念 责任链模式是为请求创建一个处理者对象的链条,所有处理者(除最末端)都含有下一个对象的引用从而形成一条处理链,该模…...
给你一个整数 num ,返回 num 中能整除 num 的数位的数目
给你一个整数 num ,返回 num 中能整除 num 的数位的数目。 如果满足 nums % val 0 ,则认为整数 val 可以整除 nums 。 示例 1: 输入:num 7 输出:1 解释:7 被自己整除,因此答案是 1 。 示例 2&…...

Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金)
MVC房贷计算器(Ajax版) 1.新建一个JavaWeb项目hslcalweb,设置tomcat10。 2.创建房贷计算器JavaBean:HslCalBean.java,增加以下的属性,并生成Getter/Setter方法。 private double total; //贷款额度pr…...

2023.10.28 关于 synchronized 原理
目录 synchronized 特性 synchronized 优化机制 锁升级(锁膨胀) 其他优化机制 锁消除 锁粗化 synchronized 特性 开始时是乐观锁,如果锁冲突频繁,就转为悲观锁开始是轻量级锁,如果锁被持有的时间较长,…...
力扣 27. 移除元素
目录 1.解题思路2.代码实现 1.解题思路 利用双指针思路,当让一个指针先走,指针指向的位置不等于val时,将此时该指针的值给另一个指针并且两个指针都加一,如果等于val,则让该指针加一继续走.最后另一个指针的下标就为排好的数组的…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...