在JavaScript中,弹出子窗口通常使用window.open()
方法。刷新父窗口可以使用window.opener.location.reload()
方法。
function openChildWindow() {
var childWindow = window.open('child.html', 'ChildWindow', 'width=400,height=300');
}
function refreshParentWindow() {
if (window.opener && !window.opener.closed) {
window.opener.location.reload();
}
}
原因:可能是因为window.opener
为null
或已关闭。
解决方法:
确保在子窗口中调用refreshParentWindow()
时,父窗口仍然打开且未被关闭。
function refreshParentWindow() {
if (window.opener && !window.opener.closed) {
window.opener.location.reload();
} else {
console.error('Parent window is closed or not accessible.');
}
}
原因:现代浏览器通常会阻止未经用户交互的弹出窗口。
解决方法:
确保window.open()
方法在用户点击事件或其他用户交互事件中调用。
<button onclick="openChildWindow()">Open Child Window</button>
通过合理使用window.open()
和window.opener.location.reload()
,可以实现弹出子窗口并刷新父窗口的功能。需要注意浏览器的安全策略,确保在用户交互事件中调用相关方法,以避免被浏览器阻止。