首页 > 解决方案 > 如何将javascript函数执行限制在特定窗口?

问题描述

首先,如果标题不是描述性的,请道歉。无论打开多少标签,我都想做的是从会话中注销/过期。

因此,为了更详细地解释一下,假设我打开了所有选项卡。在不活动一段时间后,模式将打开并显示在所有选项卡中(这已经工作并发生)。当我单击主窗口时,它会按我的预期执行功能。它触发过期,然后注销,然后重定向。

问题是当我从选项卡 2 或 3 中的模式单击注销时,它正在运行过期,注销然后重定向。

应该发生的是 T1 应该触发过期,注销所有选项卡,然后每个选项卡都会执行它自己的重定向。

我尝试通过按名称将函数传递给窗口,但选项卡没有引用每个窗口名称,只有它们自己的名称。我相信这与执行上下文有关,但我不是 100% 确定。有用于添加作为应用程序打开到 sessionStorage 的每个选项卡的代码,但它只存储基本信息,而不是应用程序的上下文。

我正在研究别人的代码,并试图围绕所写的内容和必须完成的更改来思考。

任何帮助将不胜感激。


例如:

选项卡 1:这是主窗口,应该处理所有脚本的执行和 ajax/网络调用。

Tab 2:是从 Tab 1 启动的应用程序。当模式显示并单击按钮时,不应在此选项卡中处理 ajax 请求的执行,而是在Tab 1中处理。Tab 1完成所有调用后,Tab 2将重定向到登录页面。

Tab 3:是从 Tab 1 启动的应用程序。当模式显示并单击按钮时,不应在此选项卡中处理 ajax 请求的执行,而是在Tab 1中处理。Tab 1完成所有调用后,Tab 3将重定向到登录页面。


标签: javascriptsession-management

解决方案


推荐阅读