【问题标题】:Closing child window when you close parent window关闭父窗口时关闭子窗口
【发布时间】:2014-08-22 18:50:42
【问题描述】:

我正在尝试强制关闭从我的页面打开的窗口,但我自己没有通过 window.open() 打开它...所以我没有可以想到的参考点窗口名称.close();因为我从来没有在我的代码中真正打开它,其他一些服务会处理它。我知道要关闭的窗口上有 target="windowName",但我不确定如何根据它来关闭它。

我想在我的主窗口关闭时关闭此窗口,因此执行以下操作:

window.onunload = function () {
    windowName.close(); // This does nothing.
};

问题:如何关闭属性为 target="windowName" 的窗口?

【问题讨论】:

  • 除非您从 window.open() 引用了子窗口,否则您将无法这样做
  • 我可以在不打开新窗口的情况下引用它吗?
  • @R.T.他没有使用 window.open()
  • @johnatrik 我不这么认为。与其尝试从父窗口关闭它,不如在从子窗口监听父窗口关闭,然后自行关闭呢?

标签: javascript


【解决方案1】:

你不能。无法通过目标名称获取window 对象。没有获取子窗口列表的方法。

【讨论】:

    【解决方案2】:

    使用 javascript 或 jQuery 无法仅通过名称获取/关闭窗口。 所以你必须使用浏览器sdk。例如,在 Mozilla Firefox 中,您可以:

    var windows = require("sdk/windows");
    for each (var window in windows.browserWindows) {
      console.log(window.title);
    

    }

    获取当前浏览器所有打开的窗口,然后决定关闭哪个窗口。

    再见

    【讨论】:

      【解决方案3】:

      我认为,因为你有一个框架名称,你实际上可以定位它,然后调用 close。

      这是 target 属性的语法,注意它可以采用框架名称,我相信这是给你的。 http://www.w3schools.com/tags/att_a_target.asp

      这是关于如何在 Javascript 中使用框架全局数组的说明,假设您有框架名称。 infimum.dk/HTML/JSwindows.html#ref_2_6

      【讨论】:

      • 如果它在它自己的单独标签中,它仍然是一个框架吗?
      • 据我了解,只要它是使用 _target 属性创建的,您就应该能够定位它。即使它位于单独的标签中。
      猜你喜欢
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 2011-01-19
      • 2019-09-30
      相关资源
      最近更新 更多