jQuery / Javascript事件检测页面更改取消

jQuery / Javascript event to detect page change cancellation

本文关键字:取消 检测 Javascript 事件 jQuery      更新时间:2023-09-26

一个有点曲线球的请求,可能没有解决方案,但值得一问…

我们有一个基于ajax的网站,我们非常依赖模态/加载屏幕来指示什么时候发生了重要的事情。一切正常

我们也有一些操作触发整个页面的变化,这可能需要几秒钟。当这些变化开始时,我想施加相同的模态/加载屏幕,但是-如果用户取消页面加载,我想检测它并把加载模态下来。否则它就会永远呆在那里。

我可以监视正在使用的Escape键,但是是否有一种方法可以以更通用的方式检测取消,这种方式也可以在浏览器的取消控件启动时工作?

感谢

注:需要说明的是,这里我指的是正常的页面更改。提到其他地方使用的AJAX只是为了解释为什么我现在想要加载屏幕;的一致性。否则,我想我们都会同意,仅仅为了浏览网站而设置加载屏幕是不正常的。

结果

显然不可能。niklas发现:但现在我知道你想做什么了,我找到了这个https://stackoverflow.com/a/1776490/3877639。恐怕我不看好你的胜算。

开始回答,然后我看到Carlos的回答,我想我可能误解了你的问题。我将把我的第一个答案留在下面,以防万一它对你有什么用处。

您希望检测页面加载被取消。但是如果页面加载被取消,ajax调用不会失败吗?你能不能听一下,然后把模态/加载屏幕拿下来?

不知道你是否使用jQuery的。ajax(),但如果有任何错误,它很容易做的事情。


您要查找的是onunload事件。然而,浏览器的支持不是很好(从链接中可以看到)。

还有onbeforeunload事件,它有更好的浏览器支持,但它会触发一个浏览器对话框,你不能覆盖。发个短信给。然后用户可以选择留在页面上或离开/关闭它。

基本上你可以中止XMLHttpRequest ajax调用返回jQuery。

查看