在safari中onbeforeunload不运行代码服务器端
在浏览器关闭或F5,我必须在服务器端执行一些代码 为此,我有一个按钮。点击该按钮上的onclientclick和onclick函数。我也在window.onbeforeunload上写了一个button.click()的事件。在safari中onbeforeunload不运行代码服务器端
window.onbeforeunload=function(e)
{
button.click()
}
我的问题是,这个运行按钮的客户端点击功能的代码,但是服务器端代码没有得到执行。只有在关闭浏览器时才会发生这种情况。当我做F5时,它完美地工作。这也只发生在Safari上。 FF和mozila的功能完美。我怎么能
有可能是一个速度问题,按钮被点击,但没有足够快的响应发送到服务器,所以浏览器关闭之前,它可以发送。
如果您需要,您可以随时提示缓慢关闭窗口,但这非常不友好。
这不是真的 - 移动Safari不识别onbeforeunload,但桌面Safari浏览器会。 – Amalgovinus 2013-10-02 19:35:49
Safari在beforeunload事件中不允许或执行异步AJAX请求,所以很可能是您的代码被执行,但请求永远不会发送到服务器。执行同步AJAX请求,因此请使用beforeunload处理程序中的那些请求。
作为一个好奇心,这里的问题是,Safari不识别onbeforeunload事件......因此,任何代码都不会在Safari中运行。 你可以使用onunload事件,但在这里你将永远无法阻止页面关闭
你如何调用你的“服务器端代码”?你的“点击”处理程序是什么样的? – Pointy 2010-06-14 12:40:27