【问题标题】:Chrome Browser not closing current tab using Javascript window.closeChrome浏览器未使用Javascript window.close关闭当前选项卡
【发布时间】:2020-03-02 19:07:54
【问题描述】:

我们有一个 ASP.Net MVC 应用程序,我们在会话超时后显示静态 SessionExpired html 页面。 SessionExpired 页面使用另一个页面的 window.location 显示。我们在 SessionExpired 页面中有一个关闭窗口按钮,它有一个 javascript 点击函数 window.close() 来关闭窗口。但是,这在 chrome 浏览器中不起作用。

我已经尝试了来自网络的所有解决方案,但它们在 chrome 版本 v78 中不起作用。

我尝试使用 window.open 而不是 window.location 打开 SessionExpired 页面,如下所示

window.open("SessionExpired.html","_self") 

因为我不应该打开一个新标签。但无法使用以下解决方案关闭窗口

window.open('','_self').close();

如果我使用上述解决方案

window.open("sessionExpired.html");

但正如我所提到的,我无法打开新标签并保持现有标签打开。

【问题讨论】:

    标签: javascript google-chrome


    【解决方案1】:

    如果我的理解正确,那么您的意思是:

    1. 用户打开一个选项卡并开始使用您的应用程序。
    2. 在某些时候,用户停止使用应用程序并处于空闲状态。
    3. 用户的会话到期,因此页面会刷新并显示到期消息和关闭按钮,该按钮执行window.close()
    4. 单击关闭按钮不会关闭页面。

    如果是这样,恐怕您将无法使关闭按钮起作用。您无法关闭 用户 以编程方式打开的窗口。

    您可能有一个按钮,可将他们带到应用程序的登录页面(在同一窗口中)。

    【讨论】:

    • 嗨 Crowder,感谢您的快速响应。因此,这是 Chrome 浏览器的安全原因,我们无法关闭窗口。似乎网络中的一些解决方案在早期版本的 Chrome 中运行良好,但在 V78 中却没有。似乎chrome只会关闭使用window.open打开的窗口,没有像_self等额外的参数。
    • @RavindraReddy - 我不认为这是新的,window.close 无法关闭 user 打开的窗口是非常基本的。我刚刚在 Chrome v49 中测试了它,它没有工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2013-07-19
    • 2018-02-03
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多