1

在浏览器关闭或 F5 上,我必须在服务器端执行一些代码为此我有一个按钮。单击具有编写 onclientclick 和 onclick 功能的按钮。我还在 window.onbeforeunload 上写了一个事件,它执行 button.click()。

window.onbeforeunload=function(e)
{
   button.click()
}

我的问题是这会运行按钮的客户端单击功能的代码,但是服务器端代码不会被执行。仅当我关闭浏览器时才会发生这种情况。当我做 F5 时,它工作得很好。这也只发生在 Safari 上。在 FF 和 mozila 中它完美地工作。我怎样才能

4

3 回答 3

1

Safari 不允许或在 beforeunload 事件中执行异步 AJAX 请求,因此很可能您的代码已执行但请求从未发送到服务器。执行同步 AJAX 请求,因此请在 beforeunload 处理程序中使用这些请求。

于 2010-08-12T14:32:52.367 回答
0

可能存在速度问题,单击按钮但响应发送到服务器的速度不够快,因此浏览器在发送之前关闭。

如果需要,您可以随时弹出提示以减慢关闭窗口的速度,但这非常不友好。

于 2010-06-14T12:42:47.347 回答
0

出于好奇,这里的问题是 Safari 无法识别 onbeforeunload 事件......因此任何代码都不会在 Safari 中运行。您可以使用 onunload 事件,但在这里您将永远无法阻止页面关闭

于 2010-12-15T13:42:33.380 回答