【问题标题】:onunload not working in Chrome and safarionunload 在 Chrome 和 Safari 中不起作用
【发布时间】:2011-07-27 11:30:50
【问题描述】:

我有父页面和子页面。在子页面正文标签中,我有以下代码。

<body onunload="window.g_autoclosed=true;if(window.opener&&window.opener.NavModelessClose){window.opener.NavModelessClose(window,false);}"> 

当我点击父页面中的按钮时,子页面应该关闭并调用 onunload 事件。

卸载事件在 IE 和 FF 中正确引发。但它并没有在 chrome 和 safari 中提高。

请帮帮我。

【问题讨论】:

标签: javascript html webkit


【解决方案1】:

现代 WebKit 浏览器不一定会在页面被隐藏时触发 unload 事件。这样做是为了改进缓存。

您可以考虑将unload 的使用替换为pagehide 事件。

this blog post for an in-depth discussion

【讨论】:

    【解决方案2】:

    Unload 适用于现代浏览器,但例如您无法启动警报。 看: http://bugs.jquery.com/ticket/10509

    此外,如果您想在卸载时使用 $.get 或 $.post,最好使用带有 async=false 的 $.ajax。

    例如:

    $(window).unload(function() {
                $.ajax({
                  url: '/some_url.htm',
                  async: false
                });
        });
    

    【讨论】:

      【解决方案3】:

      也许可以试试onbeforeunload 事件?

      【讨论】:

        【解决方案4】:

        是的 onbeforeunload 附加到窗口(或子页面的内部窗口)应该这样做

        【讨论】:

          猜你喜欢
          • 2013-07-19
          • 2014-10-14
          • 2013-09-30
          • 1970-01-01
          • 1970-01-01
          • 2017-10-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多