当前位置: 首页 > news >正文

react-quill富文本 中文输入法触发change问题

使用的富文本是编辑器 react-quill

需求:

点击按钮插入自定义颜色文字,然后手动输入为正常颜色。

问题:

quill组件把带颜色的字体创建个dom, 临近的文字都会整合进一个dom中,导致输入的文字和插入的带颜色 都统一成一个颜色了。

中文输入拼音阶段就开始触发change事件,在转换文本时会把拼音和汉字混杂出现,结果不正确。

解决方案:

绑定compositionstart,compositionend 事件,可监听到非直接输入的输入法输入状态,结束时机准确。

设置个状态,通过判断状态区分 中/英文输入法区别,正确处理逻辑。

// 设置个状态,表示当前是否是非直接输入法输入(如中文,有拼音阶段)
let editorIsChineseStatus = false
useEffect(() => {const editorDom = document.querySelector('.ql-editor')if (!editorDom) returneditorDom.addEventListener('compositionstart',function () {// 当前是非直接输入法输入editorIsChineseStatus = true},false)editorDom?.addEventListener('compositionend',function (e) {// 非直接输入法输入结束editorIsChineseStatus = false// 处理逻辑todo()},false)}, [])
const editorChange = () => {// 直接输入法输入(英文,可直接输入)if (!editorIsChineseStatus) {// 处理英文输入逻辑todo2()}
}

http://www.lryc.cn/news/156999.html

相关文章:

  • Upload-labs 1~15 通关详细教程
  • ChatGPT分析日本排放核污水对世界的影响
  • eclipse进入断点之后,一直卡死,线程一直在运行【记录一种情况】
  • 2.5 动态字符串 String (完整源码)
  • Ansible之变量
  • 自动化测试面试常见技术题目
  • aarch64 arm64 部署 stable diffusion webui 笔记 【2】继续安装其他依赖 gfpgan
  • 使用ECS和RDS部署WordPress,搭建个人博客并使用域名访问
  • C# Winform 简单排期实现(DevExpress TreeList)
  • 2023高教社杯国赛数学建模C题思路+模型+代码(9.7晚开赛后第一时间更新)
  • QT6中添加串口模块SerialPort最简单方法
  • LeetCode每日一题:1123. 最深叶节点的最近公共祖先(2023.9.6 C++)
  • Oracle查看锁表和正在执行的Sql
  • Linux centos 卸载 ceph
  • ElementUI浅尝辄止34:Radio 单选框
  • 开始MySQL之路——MySQL三大日志(binlog、redo log和undo log)概述详解
  • router基础使用
  • 亚马逊云科技人工智能内容审核服务:大大降低生成不安全内容的风险
  • 2023年高教社杯数学建模思路 - 案例:最短时间生产计划安排
  • 算法工程题(二叉树递归)
  • “指针跃动”受邀参加全球贸易服务峰会
  • Go Web开发的高级技巧和最佳实践
  • Verilog 基础知识
  • element ui 表格组件与分页组件的二次封装
  • 递归算法学习——有效的数独,解数独
  • 基于Alexnet深度学习网络的人员口罩识别算法matlab仿真
  • 【Java Web】利用Spring整合Redis,配置RedisTemplate
  • 如何正确的写出第一个java程序:hello java
  • 使用llvm 编译最新的linux 内核(LoongArch)
  • Using Multiple RDF Knowledge Graphs for Enriching ChatGPT Responses