我正在打开一个窗口
winRef = window.open(......);
然后我将上面的winRef
存储在cookie中,这样即使父级刷新,我也可以获得对子窗口的引用。
这不起作用,因为当我尝试在cookie中保存winRef时,它只保存对象的text representation/string
,因此您只有"[object Window]"
作为字符串,它不是对象。
有没有办法将窗口引用存储为cookie?如果不可能,那么我可以使用哪些其他可能的方法?
PS:我认为在cookie中只存储窗口名而不是窗口对象可以解决问题,但在我的情况下无法完成,我无法提供窗口名称,基本上窗口是在线编辑器,如果我给它一个特定的名字,那么用户就无法打开多个在线编辑器,因为它总会重新加载当前打开的窗口。终极目标:Retrieving references to child window if the parent refreshes
答案 0 :(得分:4)
首先请原谅我可怜的英语;-)
此问题的可能解决方法是在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
引用,就不会执行进一步的操作
答案 1 :(得分:2)
变量是存在于主存储器(也称为RAM)以及正在运行的进程或线程范围内的抽象。你无法将它们存储在其他任何地方。
特别是,cookie是纯文本。它们作为HTTP标头发送,并且通常存储在文本文件中。所以回答你的问题:不,你不能在cookie中存储JavaScript object of type window
。