如何禁止从Fancybox 5外部关闭弹窗,仅允许自定义按钮关闭
解决Fancybox仅允许自定义按钮关闭的问题
针对你的需求,提供两种可行方案:
方案一:禁用外部点击与ESC键关闭
Fancybox新版本中,旧的closeClick参数已被clickOutside替代,同时需要禁用ESC键关闭,确保用户只能通过你自定义的按钮操作。修改后的代码如下:
$.ajax({ type: "POST", url: actionUrl, data: form.serialize(), success: function(data) { new Fancybox( [ { src: data, type: "html", }, ], { closeButton: false, height: "auto", width: "100%", clickOutside: false, // 禁止点击弹窗外部关闭 escapeKey: false, // 禁止按ESC键关闭 } ); } });
你需要在AJAX返回的HTML内容中添加自定义关闭按钮,并绑定Fancybox的关闭方法,示例代码:
<!-- 嵌入在返回的data内容中的自定义按钮 --> <button onclick="Fancybox.close()">点击关闭弹窗</button>
方案二:设置Fancybox全屏显示
让弹窗直接占满整个浏览器视口,这样就没有外部区域可供点击,同样可以配合禁用ESC键来强化控制:
$.ajax({ type: "POST", url: actionUrl, data: form.serialize(), success: function(data) { new Fancybox( [ { src: data, type: "html", }, ], { closeButton: false, fullScreen: { autoStart: true // 自动开启全屏模式 }, escapeKey: false, // 可选:禁止ESC键关闭 } ); } });
内容的提问来源于stack exchange,提问作者Devpaq
相关产品推荐
相关产品推荐

