You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁止从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 20:37:50