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

WordPress中关闭overlay lightbox时如何实现父页面刷新?

解决方案

你之前代码失效的核心原因:你使用的是iframe内嵌型灯箱,不属于浏览器原生弹出窗口,不存在window.opener对象,因此针对弹出窗口设计的刷新逻辑全部无效。

方案1:父页面监听灯箱关闭事件自动刷新(推荐)

直接在嵌入灯箱入口的父页面添加如下JS代码即可,只要灯箱触发关闭(包括点击外部区域、点击关闭按钮)就会自动刷新父页面:

jQuery(document).ready(function($) {
    // 绑定Responsive Lightbox自带的关闭事件
    $(document).on('nivo-lightbox-close', function() {
        // 刷新当前父页面,如需跳转到指定地址可替换为 window.location.href = '你的目标地址'
        location.reload();
    });
});

方案2:iframe内操作完成后主动触发父页面刷新

如果你的需求是仅当用户在iframe的提问页面提交完成后才关闭灯箱并刷新父页面,可以在iframe页面的表单提交成功回调中添加如下代码:

// 写在ask-questions页面的表单提交成功逻辑中
// 方式1:触发父页面绑定的关闭事件,配合方案1使用
parent.jQuery(document).trigger('nivo-lightbox-close');

// 方式2:直接操作父页面刷新并关闭灯箱,无需提前绑定事件
// parent.location.reload();
// parent.jQuery('.nivo-lightbox-overlay').data('nivoLightbox').close();

注意事项

  • 需保证父页面和iframe页面为同域名,否则受浏览器同源策略限制无法跨域操作父页面对象
  • 如果不需要区分操作状态,只要关闭灯箱就刷新,仅使用方案1即可

内容的提问来源于stack exchange,提问作者isbe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:00:04