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

wangEditor5添加键盘事件/实现定时保存功能

1、问题概述?​​​​​​​

主要内容:添加键盘事件、实现定时保存功能。

wangEditor5轻便好用,但是在很多的功能上还有待完善,毕竟个人精力有限。

为什么要添加这个键盘事件呢?因为我在实现当内容发生变化,就出发自动修改功能的时候,发现onChange函数,只要我们点击一下就会出现,并不是内容修改才触发(不知道是不是我配置问题),于是我尝试给wangEditor5编辑器添加键盘事件,并实现定时保存功能。

也可实现实现如下功能?

如:当点击Enter键的时候实现存储或主动修改功能?

 

如:点击任意数字或字母键盘的时候,出现修改功能。

2、添加键盘事件实现方式

2.1、自动添加或修改的重要思想

重点:键盘事件及自动保存功能一个非常重要的小技巧?

就是需要设置一个公共的状态值,status,

如果status=-1表示值没变化,不需要修改或添加。

如果status=1表示值变化,需要修改或自动添加。

我直接在页面添加了一个隐藏域status,如下代码:

//如果status=-1表示内容没变,如果status=1表示内容修改
<input type="hidden" id="status" value="-1">
//如果id=-1表示添加功能,如果id!=-1表示修改功能
<input type="hidden" id="id" value="-1">

2.2、创建键盘事件函数

在页面加载的时候,自动加载就行了

以下的各种条件,可以根据自己实际的需求和情况进行设定。

function InitKeyEvent(layer){// 添加键盘按下事件监听$("#editor-text-area").on('keydown', function(event) {console.log('Key pressed:', event.key);if (event.key === 'Enter') {//获取文章状态值var status=$("#status").val();var id=$("#articleid").val();//1表示变化if(id=-1){saveData();}if(status==1&&id!=-1){updateDate();} //修改或添加后,重置status状态值$("#status").val(-1);}//如果点击了非Enter,上下左右键,执行修改功能。       if(event.key!="Enter"&&event.key!="ArrowUp"&&event.key!="ArrowDown"&&event.key!="ArrowLeft"&&event.key!="ArrowRight"){//获取文章的标题内容var title=$("#title").val();//如果标题不为空就修改状态值//值变化后,定时修改功能就能满足条件,从而自动保存。if (title!=""){$("#status").val(1);}}});
}

2.3、创建定时任务

案例中直接使用javaScript创建定时任务,也可以使用如springboot等工具实现定时任务的创建。

function onEvent(){//每两分钟执行一次setInterval(function(){var status=$("#status").val();var id=$("#id").val();//1表示变化if (status==1){if(id==-1){var title=$("#articletitle").val();//标题if (title!=""){//加入标题不为空saveDate();}}else{if (status==1){updateDate();}}}}, 120000);}

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

相关文章:

  • 单张显卡运行多个vllm模型
  • 进程优先级切换调度-进程概念(6)
  • 【C++】继承和多态扩展学习
  • PyQt5在Pycharm上的环境搭建 -- Qt Designer + Pyuic + Pyrcc组合,大幅提升GUI开发效率
  • Qt多语言支持初步探索
  • 按键精灵脚本:自动化利刃的双面性 - 从技术原理到深度实践与反思
  • Web3面试题
  • 拥抱区块链红利:机遇无限,风险暗涌
  • 期权分红怎么分的?
  • UNet改进(24):注意力机制-从基础原理到高级融合策略
  • Atcoder Beginner Contest 415 D题
  • 算法笔记之堆排序
  • 2023CCPC秦皇岛 F. Mystery of Prime(线性DP)
  • Python通关秘籍(四)数据结构——列表
  • iView Table组件二次封装
  • Elasticsearch服务器开发(第2版) - 读书笔记 第一章 Elasticsearch集群入门
  • 【uboot/kernel1】启动流程,环境变量,内存,initramfs
  • 【数学建模】基础知识
  • 【Verilog】竞争、冒险
  • 本地大模型VRAM需求计算器:原理与实现详解
  • Web3介绍(Web 3.0)(一种基于区块链技术的去中心化互联网范式,旨在通过技术手段实现用户对数据的自主权、隐私保护和价值共享)
  • 浙江大学PTA程序设计C语言基础编程练习题1-5
  • 高并发场景下的缓存问题与一致性解决方案(技术方案总结)
  • Redis 初识
  • Vue项目中的AJAX请求与跨域问题解析
  • Trae安装指定版本的插件
  • 网络编程---TCP协议
  • 浏览器解码顺序xss
  • Matlab学习笔记:界面使用
  • 基础算法思想(递归篇)