给定以下流程:在AJAX响应处理程序中关闭Firefox 2中的弹出窗口
1)用户单击一个链接,打开一个弹出窗口。 2)用户做了一些事情,点击一个按钮来保存更改。 3)使用AJAX,一些数据被张贴。 4)在AJAX响应处理程序中,弹出窗口关闭,主窗口刷新。
FireFox 2存在一个问题,关闭响应处理程序中的弹出窗口失败(直到某些用户活动,例如鼠标移动,在窗口上执行)。
Sample code (popup window only):
function ajax_cb()
{
window.close();
}
// Send a POST request, ajax_cb will be called when readystate == 4.
function test_ajax_close()
{
Request.sendPOST("file:///test.html", "", ajax_cb);
}
在上面的示例中,窗口最终会关闭,但首先需要用户交互。根据这一link:
火狐变得不快乐,如果仍有打开的插座做一个异步AJAX请求,并尝试做一个window.close()的。
是的,我原本以为这不起作用,但昨天晚些时候试了一下,它解决了这个问题。 – jthompson 2009-05-23 19:11:42