我有两个可以在浏览器中同时打开的窗口。窗口名称是
我的父窗口是“ActualCosts”。它有一个“查看估计”按钮。点击它后,将打开Estimates窗口。现在,当我在Estimates窗口中保存某些内容时,我想刷新“ActualCosts”窗口。我可以使用window.opener
对象轻松执行。即,
window.opener.location.reload();
现在,这个棘手的场景。 (更新父窗口时刷新子窗口)
var myRef = window.open("estpage.htm");
myRef.location.reload();
我怀疑如何在窗口重新加载时保持myRef对象。我尝试了JSON.stringify并将它们存储在document.cookie
/ window.localStorage
中,并在需要时再次将其解析为对象。当我进行字符串化时,我得到一个循环引用错误,因此我使用JSON.stringify
这样的重载
var newWindowReference = window.open(newWindowName);
var seen = [];
var json = JSON.stringify(newWindowReference, function (key, val) {
if (typeof val == "object") {
if (seen.indexOf(val) >= 0) { return };
seen.push(val);
}
return val;
});
window.localStorage.setItem("newWindowRef", json);
//CreateCookie(("newWindowRef", json, 0);//length limit a concern too.
但这不起作用。解析的对象具有myRef.location
作为空对象。
所以我怀疑是
任何指导都将深表感谢。
P.S:我知道轮询更改是一个更好的选择,但我关心的是如何捕获winRef对象。