有谁知道如何在OnBeforeUnload事件中检测到服务器端代码发送了Response.Redirect?我想提示用户阻止他们在某个时间之前离开页面,但是当服务器重定向时我不应该提示用户.
我正在使用广泛使用Response.Redirect的遗留代码,我对改变重定向发生的方式不感兴趣.请不要建议我使用X重定向方法.
它应该有可能基于XMLHttpRequest对象作为响应重定向应发回一个302响应代码来做到这一点.
编辑: Response.Redirect发回200,在主体中有一个重定向代码,然后在ASP.Net代码中执行window.location.href =新页面.有没有办法得到服务器响应,以确定这已发生?
在此先感谢您的帮助!
我找到了解决方案.
当PageRequestManager处理来自服务器的响应时,它将设置_processingRequest标志.为了让response.redirect能够通过,我改变了我的javascript以检查它.该事件现在看起来像这样:
window.onbeforeunload = function() { var prm = Sys.WebForms.PageRequestManager.getInstance(); if (!prm._processingRequest){ return "Are you sure you want to leave?"; } };