【问题标题】:Issue with window.close and chromewindow.close 和 chrome 的问题
【发布时间】:2011-01-03 05:01:12
【问题描述】:

我正在尝试使用 JavaScript 关闭一个子窗口,在 Firefox 中一切正常,但在 Chrome 中该窗口没有关闭。

这是我正在使用的

$(document).ready(function() {
    if (window.opener && !window.opener.closed)
        window.opener.location = "http://www.website.com"
    window.close();
});

我在google 上尝试了一个建议,但无济于事。

任何人有类似的问题或知道解决方法?

【问题讨论】:

    标签: javascript google-chrome chrome-ios


    【解决方案1】:

    我知道这个问题很老,但我遇到了同样的问题。这对我有用:

    window.open('', '_self', ''); //bug fix
    window.close();
    

    【讨论】:

    • 是的,这也适用于我。 @Patrick 应该将其标记为答案。
    • @Long 我认为因为第一个 window.open() 错误修复崩溃了,所以应该延迟。 @Warren 谢谢。
    • 这个解决方案的未来性如何?有谁知道为什么会这样?我认为一般规则是您不能关闭不是用 JavaScript 打开的窗口。
    • @WalterStabosz 如果您直接使用 window.close() 那么它将不起作用,因为只有从 javascript 打开的选项卡才允许关闭。所以我们在同一个窗口中打开一些空白 url,然后尝试通过 javascript 关闭它,它可以工作!!
    • 我无法让它工作;我已经使用 LyteBox 打开了子窗口,我可以使用 parent.document “回发”到主窗口,但是它只是忽略了 window.close - 这很奇怪,因为子窗口是在第一名。
    【解决方案2】:

    如果您之前通过window.open()打开了其他窗口

    这不起作用:

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

    但工作:

    window.open(...);
    setTimeout(function(){
        window.open('', '_self', '');
        window.close();
    }, 100);
    

    【讨论】:

      【解决方案3】:

      这样的事情也应该有效:

      setTimeout(function() {
          window.close();
      },50);
      

      【讨论】:

      • 对我不起作用 - 它不会出错,只是什么都不做。
      【解决方案4】:

      我认为它在 Chrome Kiosk(全屏)模式下工作。尝试成功。

      【讨论】:

        【解决方案5】:

        top.window.close() 对我有用。在 IE、FF、Chrome、Safari 和 Opera 上测试。

        【讨论】:

          【解决方案6】:

          这对我有用

          var win = window.open("about:blank", "_self");
          win.close();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-08
            • 2013-02-14
            • 2021-10-05
            相关资源
            最近更新 更多