如何在cookie中存储窗口引用
How to store window references in a cookie?
我正在打开一个窗口
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对象。
- 我应该在哪里用javascript存储我的窗口维度
- 无法检索从窗口.本地存储中选择输入值
- 如何从窗口中检索文件.持久存储
- 具有多个浏览器选项卡/窗口的骨干网.js和本地存储覆盖数据
- 在新窗口中打开存储在 SharePoint 中的文档
- 全局变量存储在 Node.JS 中的什么位置?节点中是否有类似窗口的对象
- 如何在窗口位置之后存储数据
- 在同一窗口中侦听本地存储的更改
- jQuery/js 每次调用弹出窗口时都会存储/附加变量,但为什么
- 如何在浏览器窗口/选项卡关闭时删除本地存储项目
- 为标记添加唯一的信息窗口,并更新数据库以存储信息(谷歌地图api)
- 弹出窗口保存在本地存储中
- 为什么Internet Explorer会弹出窗口;存储“;存储数据的窗口上的事件
- 强制本地存储事件在同一窗口中激发
- 在新窗口中打开存储在javascript变量中的html文件
- '这'当创建函数存储在哈希中的JS对象时,其作用域为窗口对象
- Nodejs:在一个新窗口中写入zip文件(存储在一个变量中作为Buffer)
- 使用窗口对象进行会话存储,而不是使用AmplifyJS存储
- 如何在cookie中存储窗口引用
- 存储窗口.innerWidth值,并计算与调整大小时的新值的差值