在浏览器关闭或F5上,我必须在服务器端执行一些代码 为此,我有一个按钮。单击该按钮,其中包含onclientclick和onclick函数。我还在window.onbeforeunload上写了一个事件,它执行了一个button.click()。
window.onbeforeunload=function(e)
{
button.click()
}
我的问题是,这会运行按钮的客户端单击功能的代码,但服务器端代码不会被执行。仅当我关闭浏览器时才会发生这种情况。当我做F5时它完美无缺。这也只发生在Safari上。在FF和mozila它完美地运作。我怎么能
答案 0 :(得分:1)
Safari在beforeunload事件中不允许或执行异步AJAX请求,因此很可能是您的代码被执行但请求永远不会发送到服务器。执行同步AJAX请求,因此请使用beforeunload处理程序中的那些。
答案 1 :(得分:0)
可能存在速度问题,按钮被点击但响应没有足够快地发送到服务器,因此浏览器会在发送之前关闭。
如果你需要,你总是可以提示减慢关闭窗口的速度,但这是非常不友好的。
答案 2 :(得分:0)
作为好奇心,这里的问题是因为Safari无法识别onbeforeunload事件...因此任何代码都不会在Safari中运行。 你可以使用onunload事件,但在这里你永远无法阻止页面关闭