如何在cookie中存储窗口引用

How to store window references in a cookie?

本文关键字:存储 窗口 引用 cookie      更新时间:2023-09-26

我正在打开一个窗口

winRef = window.open(......);

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

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

是否有办法将窗口引用存储为cookie?如果这是不可能的,那么还有什么其他可行的方法呢?

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

最终目标:在父窗口刷新

时检索对子窗口的引用

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

这个问题的一个可能的解决方法是在窗口中设置一个名称。打开功能(如:popup = window.open(URL, popup_window, specs, replace))然后将弹出框保存在cookie中。当检索cookie时,您将得到您所说的[object Window]

eg: 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。

变量是存在于主内存(即RAM)和运行进程或线程范围内的抽象。你只是不能把它们存储在其他地方。

特别地,cookie是纯文本。它们作为HTTP头发送,并且通常存储在文本文件中。所以回答你的问题:不,你不能在cookie中存储类型为window的JavaScript对象。