news 2026/1/16 5:35:36

阿里验证码Web和H5客户端V3架构接入鼠标拖拽滑块离开对话框释放鼠标时一直处于验证中问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
阿里验证码Web和H5客户端V3架构接入鼠标拖拽滑块离开对话框释放鼠标时一直处于验证中问题

Web和H5客户端V3架构接入:

现象:鼠标拖拽滑块离开对话框释放鼠标时一直处于验证中,没有触发验证。

分析:V3版本问题,V2无该问题。初步定位是因为V3滑块离开滑块弹框范围时释放鼠标,没有触发mouseup事件,导致插件没有回调验证函数;

解决思路:尝试拖拽在滑块框外面时,手动触发校验,分析getInstance方法返回实列没有对外提供方法触发校验;

思考:手动触发滑块按钮事件,看是不能触发插件的校验回调,通过JS获取滑块dom节点,研究mousedown,mosemove,mouseup, click事件,发现调用滑块的click事件可用触发插件校验回调函数(返回账号密码等信息),效果满足。

结合react工程代码整理如下:

// 获取验证码实例 const getInstance = useCallback( (instance: ICaptchaInstance) => { // 验证码弹窗Dom const sliderElement = document.getElementById('aliyunCaptcha-sliding-slider'); // 滑块按钮Dom const modalElement = document.getElementById('vnnox-care-captcha-modal'); // 先清理上一次注册的事件,避免重复绑定 if (dragCleanupRef.current) { dragCleanupRef.current(); dragCleanupRef.current = null; } if (sliderElement && modalElement) { const handleMouseDown = () => { isDraggingRef.current = true; }; const handleMouseMove = () => { // 仅用于标记拖拽过程,不在此处触发点击 if (!isDraggingRef.current) return; }; const handleMouseUp = (event: MouseEvent) => { if (!isDraggingRef.current) return; isDraggingRef.current = false; const rect = modalElement.getBoundingClientRect(); const { clientX, clientY } = event; const isInside = clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom; // 当拖拽结束(mouseup)时,如果鼠标位置已滑出父元素区域,则触发一次点击 if (!isInside) { // 添加到setTimeout中调用click,解决因调用click验证码弹框消失问题 setTimeout(()=>{ sliderElement.click(); }); } }; sliderElement.addEventListener('mousedown', handleMouseDown); window.addEventListener('mousemove', handleMouseMove); window.addEventListener('mouseup', handleMouseUp); dragCleanupRef.current = () => { sliderElement.removeEventListener('mousedown', handleMouseDown); window.removeEventListener('mousemove', handleMouseMove); window.removeEventListener('mouseup', handleMouseUp); }; } . . . }, [getErrorMessage, handleErrorWithDebounce] );
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/15 8:43:31

LobeChat实时热点追踪应用

LobeChat&#xff1a;重塑大模型交互体验的开源实践 在AI技术席卷全球的今天&#xff0c;大语言模型的能力早已不是秘密。从GPT系列到Llama、Claude&#xff0c;底层模型的性能持续突破&#xff0c;但一个常被忽视的事实是&#xff1a;再强大的模型&#xff0c;如果交互方式笨拙…

作者头像 李华
网站建设 2025/12/25 18:54:47

LobeChat能否实现AI辩论功能?双角色对抗模拟实验

LobeChat能否实现AI辩论功能&#xff1f;双角色对抗模拟实验 在人工智能逐渐渗透到内容创作、教育辅导和决策支持的今天&#xff0c;一个有趣的问题浮现出来&#xff1a;我们是否可以让两个AI“坐下来”进行一场有逻辑、有立场、持续交锋的辩论&#xff1f;这不仅是技术演示&am…

作者头像 李华
网站建设 2026/1/10 20:29:06

一文搞懂模拟退火算法!!!

文章目录 文章脉络 第一部分:物理灵感与核心思想 1.1 从物理退火到优化算法 1.2 核心思想:以概率接受“差解” 第二部分:算法流程详解 2.1 关键组件与操作 1. 初始状态与初始温度 2. 邻域函数与新解产生 3. 能量差与Metropolis接受准则 4. 冷却进度表 第三部分:Python实现:…

作者头像 李华
网站建设 2025/12/27 5:45:26

B站视频下载终极指南:跨平台离线保存神器

B站视频下载终极指南&#xff1a;跨平台离线保存神器 【免费下载链接】BilibiliVideoDownload 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliVideoDownload 还在为无法离线观看B站视频而烦恼吗&#xff1f;这款开源桌面应用为你提供完美的解决方案。通过简单的…

作者头像 李华
网站建设 2026/1/8 0:10:56

LobeChat诗歌写作能力测评

LobeChat诗歌写作能力测评 在AI逐渐渗透创作领域的今天&#xff0c;写诗这件事似乎不再专属于文人墨客。当大模型开始“吟风弄月”&#xff0c;我们真正需要的&#xff0c;不是一个能堆砌辞藻的工具&#xff0c;而是一个懂格律、通意境、有风格的“数字诗友”。LobeChat正是这样…

作者头像 李华
网站建设 2026/1/10 17:52:51

5、量子随机游走与搜索算法解析

量子随机游走与搜索算法解析 1. 经典马尔可夫链 经典随机游走的量子化并非只有离散时间量子游走这一种方式。这里将介绍一种不借助硬币来确定移动方向的新量子游走模型,其灵感来源于连续时间马尔可夫链。 当时间为连续变量时,游走者可在任意时刻从顶点 $x_j$ 移动到相邻顶…

作者头像 李华