如何在 cookie 中存储窗口引用?

Cha*_*hak 2 javascript cookies jquery jquery-cookie

我正在打开一扇窗户

winRef = window.open(......);
Run Code Online (Sandbox Code Playgroud)

然后我将上面的内容存储winRef在 cookie 中,这样即使父窗口刷新,我也可以获得对子窗口的引用。

这不起作用,因为当我尝试将 winRef 保存在 cookie 中时,它只保存text representation/string了对象的 ,因此您只有"[object Window]"字符串,它不是对象。

有没有办法将窗口引用存储为 cookie?如果不可能,那么我可以使用哪些其他可能的方法?

PS:我认为在cookie中只存储窗口名称而不是窗口对象可以解决这个问题,但在我的情况下不能完成,我不能提供窗口名称,基本上窗口是一个在线编辑器,如果我给给它一个特定的名称,然后用户不能打开多个在线编辑器,因为它总是会重新加载当前打开的窗口。

最终目标:如果父窗口刷新,则检索对子窗口的引用

小智 6

首先请原谅我的英语不好;-)

此问题的一个可能解决方法是在 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");
    }
Run Code Online (Sandbox Code Playgroud)

只需重用该window.open函数,只需使用相同的名称 ( popup_window) 并且没有其他参数,因为此窗口已经存在,因此不会执行进一步的操作,只需返回popup_windowref。