js 刷新父页面关闭当前页面 报错:Cannot read properties of undefined (reading 'reload')
时间: 2023-07-01 19:18:49 浏览: 218
javascript刷新父页面
5星 · 资源好评率100%
如果在子页面中打开父页面并在子页面中执行刷新父页面的代码,可能会遇到 `Cannot read properties of undefined (reading 'reload')` 错误,这是因为在子页面中访问 `window.opener` 对象时,可能会出现跨域访问的问题,导致无法获取到父页面的 `window` 对象。
解决这个问题的方法有两种:
1. 在父页面中定义一个全局函数,子页面调用这个函数来实现刷新父页面的功能。例如,在父页面中定义以下函数:
```javascript
function reloadParent(){
location.reload();
}
```
在子页面中调用该函数来实现刷新父页面的功能:
```javascript
window.opener.reloadParent();
window.close();
```
2. 在父页面中设置一个定时器,定时检测子页面是否已经关闭,如果已经关闭,则执行刷新操作。例如,在父页面中添加以下代码:
```javascript
var childWindow = window.open("child.html");
var intervalId = setInterval(function(){
if(childWindow.closed){
clearInterval(intervalId);
location.reload();
}
}, 1000);
```
上面的代码中,首先打开子页面,并设置一个定时器来检测子页面是否已经关闭。如果子页面已经关闭,则清除定时器,并执行刷新操作。需要注意的是,定时器的时间间隔可以根据需要进行调整。
阅读全文