【发布时间】:2010-11-22 00:37:18
【问题描述】:
如何使用 jQuery 重新加载子窗口的父窗口?
【问题讨论】:
标签: javascript jquery
如何使用 jQuery 重新加载子窗口的父窗口?
【问题讨论】:
标签: javascript jquery
在这种情况下不需要 jQuery。
window.opener.location.reload(false);
【讨论】:
您可以使用window.opener、window.parent 或window.top 来引用相关窗口。从那里,您只需调用 reload 方法(例如:window.parent.location.reload())。
但是,需要注意的是,如果您需要离开最初打开的页面,您可能会遇到 window.opener 的问题,因为引用将会丢失。
【讨论】:
reload() 不是window 的方法。你的意思是window.parent.loacation.reload(),我的回答中有这个。
parent.location.reload();
这应该可行。
【讨论】:
如果你想简单地重新加载子窗口的父窗口: 下面这行代码就足够了。
opener.location.reload();
如果您想用旧值或新值的查询字符串(请求)重新加载父窗口。以下代码将完成工作。
if (opener.location.href.indexOf('?') > 0) {
var baseUrl = opener.location.href.substring(0, opener.location.href.indexOf('?'));
opener.location.href = baseUrl + "?param1=abc¶m2=123";
}
else {
opener.location.href = opener.location.href + "?param1=abc¶m2=123";
}
上面的例子中不需要这个opener.location.reload();。
【讨论】:
您可以使用以下方法重新加载父窗口位置:
window.opener.location.href = window.opener.location.href;
【讨论】:
top.frames.location.reload(false);
【讨论】:
这对我有用:
window.opener.location.reload()
window.close();
在这种情况下,当前选项卡将关闭,父选项卡将刷新。
【讨论】:
防止重新提交以前的数据。在 Firefox 和 Safari 中测试。
top.frames.location.href = top.frames.location.href;
【讨论】:
window.parent.opener.location.reload();
为我工作。
【讨论】:
这将适用于从子窗口刷新父窗口
window.opener.location.reload(true);
对于某些版本的 IE,这将不起作用,因此您可以设置一些延迟
window.setTimeout(window.opener.location.reload(true), 3000);
【讨论】:
这会起作用
window.location.assign(window.location.href);
【讨论】:
对于 Atlassian Connect 应用,请使用
AP.navigator.reload();
查看详情here
【讨论】: