代码之家  ›  专栏  ›  技术社区  ›  Alister Bulman

如何使用Javascript确认浏览器窗口已打开?

  •  5
  • Alister Bulman  · 技术社区  · 17 年前

    我正在从我的站点为一些成员打开一个新的浏览器窗口。但是,一些人可能会在稍后关闭它,或者它可能最初无法打开。

    [澄清:] 检查窗口是否打开的代码将在其他页面上运行,而不仅仅是在打开它的同一窗口和URL中。想象一个用户登录,窗口(试图)打开,然后他们在同一个选项卡/窗口(或其他)中冲浪一段时间,然后关闭第二个窗口(或它从未打开)-我希望能够在首次尝试打开/关闭后的某段时间内注意到窗口已关闭,因此,我不确定检查javascript从window.open()返回(带有popup\u window\u handle.closed)是否容易使用,或者确实可能。

    3 回复  |  直到 17 年前
        1
  •  4
  •   splattne    17 年前

    excellent, comprehensive article (“几乎完全控制弹出窗口”)

    “JavaScript 1.1还引入了窗口 关闭

    <script language="JavaScript"><!--
    function open_main(page) {
        window_handle = window.open(page,'main');
        return false;
    }
    //--></script>
    
    <script language="JavaScript1.1"><!--
    function open_main(page) {
        if (opener && !opener.closed) {
            opener.location.href = page;
        }
        else {
            window_handle = window.open(page,'main');
        }
        return false;
    }
    //--></script>
    
    <a href="example.htm" onClick="return open_main('example.htm')">example.htm</a>
    

    补充: 通过以下方式引用弹出窗口的名称,可以在另一个页面中获取窗口句柄:

    window_handle = window.open(page,'myPopupName');
    

    我想在您的情况下,您应该考虑一种一致的方法,在整个应用程序中创建所有弹出窗口的名称。

        2
  •  1
  •   Greg    17 年前
    var myWin = window.open(...);
    
    if (myWin.closed)
    {
        myWin = window.open(...);
    }
    
        3
  •  0
  •   gizmo    17 年前