Javascript 如何在窗体重新加载期间存储具有循环引用的对象?
我有两个可以在浏览器中同时打开的窗口。窗口名是Javascript 如何在窗体重新加载期间存储具有循环引用的对象?,javascript,Javascript,我有两个可以在浏览器中同时打开的窗口。窗口名是 估计数 实际成本 我的父窗口是“实际成本”。它有一个按钮“查看估计”。单击它,估计窗口将打开。现在,当我在“估算”窗口中保存某些内容时,我希望刷新“实际成本”窗口。我可以使用window.opener对象轻松执行。即 window.opener.location.reload(); 现在,棘手的情况。(更新父窗口时刷新子窗口) 我点击了ActualCosts窗口上的“查看估算”按钮 因此,我有一个对已打开窗口的引用var myRef=window
window.opener
对象轻松执行。即
window.opener.location.reload();
现在,棘手的情况。(更新父窗口时刷新子窗口)
var myRef=window.open(“estpage.htm”)代码>
myRef.location.reload()代码>
document.cookie
/window.localStorage
中,并在需要时将其作为对象再次解析。当我stringify时,我得到了一个循环引用错误,因此我使用了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
作为空对象。
所以我的怀疑是
如何跨窗体重新加载持久化window.open的对象引用
是否有其他方法可以引用此打开的窗口
或者是否有一种通用的方法来跨窗体重新加载存储对象
我们将非常感谢任何指导
注:我知道轮询更改是一个更好的选择,但我关心的是如何捕获winRef对象。Show please working code onjsfiddle@FSou1:JSFIDLE中的工作代码?