【问题标题】:How to close all the child pages on LogOut如何关闭 LogOut 上的所有子页面
【发布时间】:2012-08-29 19:09:13
【问题描述】:

我们有一个母版页和一些子页。其中一个是由 window.open 函数弹出的。当在母版页单击注销时会出现问题。整个系统重定向到登录页面,除了弹出窗口。当我单击在该子页面上然后它将重定向到登录页面。我们需要在按下注销后直接将其关闭。

如果窗口的位置已知,是否有任何脚本可以关闭窗口。我想在“注销”单击中关闭该子页面。 像 window.close('Authentication.aspx'); 请告诉我是否可能

谢谢, 拉克什。

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    如果您使用以下代码打开了一个弹出窗口,假定名称为“popupwindow”...

    window.open("myurl.html", "popupwindow", "height, etc");
    

    然后在您的登录页面中尝试以下 javascript

    if(window.name=="popupwindow"){
      window.close();
    }
    

    更新基于 OP 的 cmets...

    如果您不再有对该窗口的引用(例如,因为父窗口已刷新),那么我相信几乎不可能检测到是否存在具有特定名称的弹出窗口。

    我说“几乎不可能”,因为在这种情况下,一种选择是尝试再次打开窗口并给出一个空白 URL。如果该窗口已经存在,则该窗口将保持在与以前相同的页面上,但现在您有了对它的引用,并且可以根据需要关闭。

    var myWin = window.open("","popupwindow");
    myWin.close();
    

    但是,这样做的缺点是,如果窗口确实不存在,用户会在关闭之前看到一个空白窗口打开 - 所以不是一个好的用户-经验。

    【讨论】:

    • 你好freefaller......我试过了,但是打开的窗口没有关闭。除了这个还有什么办法
    • @rakesh,您是说在用户单击父窗口上的注销时关闭窗口吗?
    • yes freefaller....我们在登录时打开子窗口。需要在单击注销时关闭它
    • @rakesh,不幸的是我认为你会遇到困难。据我所知,无法检测到窗口是否已打开,因此无法关闭它。唯一的选择(但这不是一个好的选择)是尝试打开一个同名的窗口。如果一个已经存在,那么您将能够关闭它 - 但如果窗口 不 已经存在,它将导致打开一个空白窗口......所以不是一个很好的用户体验跨度>
    • 谢谢Freefaller....我会尝试另一种方式,如果失败我会告诉客户这是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 2014-10-20
    • 2014-01-21
    • 2022-11-21
    • 1970-01-01
    • 2012-09-26
    • 2011-08-06
    相关资源
    最近更新 更多