onunload无法在Chrome和Safari中使用

时间:2011-07-27 11:30:50

标签: javascript html webkit

我有父页面和子页面。在子页面正文标记我有下面的代码。

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

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

unload事件在IE和FF中正确引发。但它并没有提高铬和野生动物园。

请帮帮我。

4 个答案:

答案 0 :(得分:12)

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

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

请参阅this blog post for an in-depth discussion

答案 1 :(得分:7)

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

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

例如:

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

答案 2 :(得分:5)

也许尝试onbeforeunload事件?

答案 3 :(得分:1)

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