我正在打开一个窗口
winRef = window.open(......);
然后我将上面的 winRef
存储在 cookie 中,这样即使父窗口刷新我也可以获得对子窗口的引用。
那没有用,因为当我试图在 cookie 中保存 winRef 时,它只保存对象的 text representation/string
所以你只有 [object Window]”
作为字符串,它不是一个对象。
有什么方法可以将窗口引用存储为 cookie?如果不可能,那么我可以使用哪些其他可能的方法?
PS:我认为在 cookie 中只存储窗口名称而不是窗口对象可以解决问题,但在我的情况下不能这样做,我无法提供窗口名称,基本上窗口是一个在线编辑器,如果我给它一个特定的名称,那么用户将无法打开多个在线编辑器,因为它总是会重新加载当前打开的窗口。
最终目标:Retrieving references to child window if the parent refreshes
最佳答案
首先请原谅我糟糕的英语 ;-)
此问题的一个可能的解决方法是在 window.open 函数中设置一个名称(例如:popup = window.open(URL, popup_window, specs, replace)
然后将弹出窗口保存在 cookie 中。
检索 cookie 时,您将获得 [object Window]
,如您所说。
例如:popup = getCookie('popup');
之后只需执行以下操作:
if (popup == null) {
//No popup
} else {
//Popup exist, retrieving is ref
popup = window.open("" ,"popup_window");
}
只需重用 window.open
函数,只是使用相同的名称 (popup_window
) 并且没有其他参数,因为此窗口已经存在,不会执行进一步的操作返回 popup_window
ref.
关于javascript - 如何在 cookie 中存储窗口引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25199386/