当前位置:首页 > JavaScript

js实现弹窗关闭后刷新

2026-04-04 22:09:00JavaScript

使用window.location.reload()方法

在弹窗关闭时调用window.location.reload()可以强制刷新当前页面。适用于通过window.open()showModalDialog()打开的弹窗。

// 打开弹窗
const popup = window.open('popup.html', '_blank');

// 监听弹窗关闭事件
const checkPopupClosed = setInterval(() => {
  if (popup.closed) {
    clearInterval(checkPopupClosed);
    window.location.reload();
  }
}, 500);

使用postMessage通信

通过postMessageAPI实现父子窗口间的通信,弹窗关闭前发送消息通知父页面刷新。

// 父页面代码
window.addEventListener('message', (event) => {
  if (event.data === 'refreshParent') {
    window.location.reload();
  }
});

// 弹窗页面代码
window.onbeforeunload = () => {
  window.opener.postMessage('refreshParent', '*');
};

模态对话框场景

使用dialog元素的close事件监听,适用于HTML5的<dialog>元素。

const dialog = document.querySelector('dialog');
dialog.addEventListener('close', () => {
  window.location.reload();
});

第三方弹窗库处理

对于使用如SweetAlert等库创建的弹窗,可在回调函数中触发刷新。

Swal.fire({
  title: '操作完成',
  icon: 'success'
}).then((result) => {
  if (result.isConfirmed) {
    window.location.reload();
  }
});

本地存储检测方案

通过localStoragesessionStorage在弹窗关闭时设置标志位,主页面通过轮询检测。

js实现弹窗关闭后刷新

// 弹窗页面
window.onunload = () => {
  sessionStorage.setItem('shouldRefresh', 'true');
};

// 主页面
setInterval(() => {
  if (sessionStorage.getItem('shouldRefresh') === 'true') {
    sessionStorage.removeItem('shouldRefresh');
    window.location.reload();
  }
}, 1000);

标签: js
分享给朋友:

相关文章

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…

js实现弹框

js实现弹框

使用 alert 实现简单弹框 JavaScript 的 alert 方法可以直接显示一个简单的弹框,内容为纯文本: alert("这是一个简单的弹框"); 使用 confirm 实现确认弹框…