当前位置:  开发笔记 > 编程语言 > 正文

Response.Redirect和OnBeforeUnload可以一起玩吗?

如何解决《Response.Redirect和OnBeforeUnload可以一起玩吗?》经验,为你挑选了1个好方法。

有谁知道如何在OnBeforeUnload事件中检测到服务器端代码发送了Response.Redirect?我想提示用户阻止他们在某个时间之前离开页面,但是当服务器重定向时我不应该提示用户.

我正在使用广泛使用Response.Redirect的遗留代码,我对改变重定向发生的方式不感兴趣.请不要建议我使用X重定向方法.

应该有可能基于XMLHttpRequest对象作为响应重定向应发回一个302响应代码来做到这一点.

编辑: Response.Redirect发回200,在主体中有一个重定向代码,然后在ASP.Net代码中执行window.location.href =新页面.有没有办法得到服务器响应,以确定这已发生?

在此先感谢您的帮助!



1> Nathaniel Re..:

我找到了解决方案.

当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?";
  }
};

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有