如何使用jQuery操作confirm弹窗的OK/Cancel按钮关闭弹窗
问题解决方法
核心说明
浏览器原生的confirm()是系统级阻塞弹窗,JS线程在弹窗弹出后会暂停执行,无法直接通过jQuery或普通JS操作弹窗上的OK/Cancel按钮,可通过以下两种适配油猴脚本场景的方案实现需求:
方案1:提前覆盖原生confirm方法(推荐,适配原生确认弹窗场景)
在页面脚本加载前重写confirm方法,直接返回你需要的结果即可,无需等待弹窗弹出:
- 油猴脚本配置项中添加
@run-at document-start,保证你的脚本比页面业务脚本更早执行 - 插入重写
confirm的代码:
// 自动点OK:所有confirm都返回true window.confirm = function() { return true; } // 若需根据弹窗内容区分处理,可按下方逻辑调整 /* window.confirm = function(confirmText) { // 例:弹窗内容包含「提交」则点OK,其余情况点Cancel if (confirmText.indexOf('提交') > -1) { return true; } return false; } */ // 之后正常触发目标按钮点击即可 $('#你的目标按钮选择器').trigger('click');
方案2:页面自定义模态框场景(非原生confirm)
如果触发的是页面自行实现的jQuery模态框,而非系统原生confirm弹窗,直接选中对应按钮触发点击即可:
// 触发OK按钮点击 $('确认按钮的CSS选择器').trigger('click'); // 触发Cancel按钮点击 $('取消按钮的CSS选择器').trigger('click');
你可以通过浏览器开发者工具的元素拾取功能,直接选中弹窗上的OK/Cancel按钮,获取对应的CSS选择器替换上述代码中的对应内容即可。
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

