【发布时间】:2019-02-20 02:44:17
【问题描述】:
在我的应用程序中,有一个页面用户可以打开一个弹出窗口。当用户单击注销时,它必须关闭弹出窗口。
我在Global.ts 类中使用静态变量来存储弹出窗口变量
public static QUICKTREND : any;
在打开弹出窗口的函数中,我存储了它
this.quickWin = window.open(URL, 'QuickTrend', 'width=' + w + ',
height=' + h + ', left=' + x + ', top=' + y + ', location=no'+ ', status=no');
Constants.QUICKTREND = this.quickWin;
在 logout() 函数中,我弹出窗口并关闭
if(!isNullOrUndefined(Constants.QUICKTREND)){
let currentIframe = Constants.QUICKTREND;
currentIframe.close();
}
如果我不刷新页面,它就可以正常工作。
但是当我刷新页面时,变量 QUICKTREND 重置为未定义。
如果页面刷新,我搜索了保持变量的解决方案,只有保存到 localStorage 或 sessionStorage 的解决方案。但是这样一来,我无法保存弹出窗口对象,因为它是 DOM 对象,Converting circular structure to JSON 错误显示。
localStorage.setItem("currentIframe", this.quickWin);
是否可以将弹出窗口保存到 localStorage?
如果页面刷新,我如何在注销时关闭弹出窗口?
【问题讨论】:
-
(您的代码似乎与 iframe 没有任何关系;它们与弹出窗口不同。)
-
@Daniel Back 我的问题非常不同,角度与 javascript 和刷新页面
-
将内容从 iframe 更新到弹出窗口
-
您的问题与该问题相同;角度与答案无关——无论有没有框架,技术都是一样的。
标签: javascript angular typescript iframe