我们有一个ASP.Net MVC应用程序,在会话超时后显示静态SessionExpired html页面。SessionExpired页面使用另一个页面的window.location显示。我们在SessionExpired页面中有一个关闭窗口按钮,它有一个javascript点击函数window.close((来关闭窗口。然而,这在chrome浏览器中不起作用。
我已经尝试了网络上的所有解决方案,但它们在chrome v78版本中不起作用。
我试图使用窗口打开SessionExpired页面。打开而不是窗。位置如下
window.open("SessionExpired.html","_self")
由于我不应该打开一个新的选项卡。但无法关闭窗口使用以下解决方案
window.open('','_self').close();
如果我使用,上述解决方案有效
window.open("sessionExpired.html");
但正如我所提到的,我无法打开一个新的选项卡并保持现有选项卡的打开状态。
如果我理解正确,你是在说:
- 用户打开一个选项卡并开始使用您的应用程序
- 在某个时刻,用户停止使用应用程序,应用程序处于空闲状态
- 用户的会话将过期,因此页面将使用过期消息和执行
window.close()
的"关闭"按钮刷新 - 单击"关闭"按钮不会关闭页面
如果是这样,恐怕您将无法使"关闭"按钮工作。您不能关闭用户以编程方式打开的窗口。
您可能会有一个按钮,将它们带到应用程序的登录页(在同一窗口内(。