javascript - onbeforeunload 在所有浏览器中的无缝行为

标签 javascript jquery asp.net

各位,在我尝试写这篇文章之前,请放心,我在所有 chrome/firefox 和 IE 中尝试过 onbeforeunload 事件,它在 IE 和 Firefox 中工作正常,但在 chrome 中失败。

然而,在一个实例中,我注意到我能够将 ajax 调用异步设置为 false,但这对于跨站点 ajax 调用来说效果不佳。

给出我正在尝试做的事情的背景...我正在尝试使用 jquery 构建一个用于自动化测试的记录和回放 js 引擎,并且我正在使用 $.ajax 进行回调。

您可以在此处找到演示

http://orgchartasp.net/jtest/ff.swf.html

我正在做的是,捕获客户端上的所有事件并在 onbeforeunload 事件上发回服务器,我最终在 IE 和 FF 上成功通过在卸载前打开一个模式窗口并在保存后将其关闭。

有没有人真正成功地完成了 onbeforeunload 跨浏览器/跨站点,如果是,请帮助我。

最佳答案

onbeforeunload 事件的问题是,在当前窗口中将任何内容发送回服务器已经太晚了。引发该事件的操作,即浏览器即将加载新页面,已经决定了接下来要加载的页面。

处理此事件时浏览器的确切行为可能会有所不同,因为直到 HTML5 之前它才出现在任何标准中。

如果您想从事件中向服务器发送任何内容,您必须打开一个新窗口并从中发布,或者进行 AJAX 调用。不过,这是一种“一劳永逸”的方式,因为您迫不及待地等待任何响应。

我想说,您不应该依赖 onbeforeunload 来可靠地工作,因此您不应该围绕它构建架构。

关于javascript - onbeforeunload 在所有浏览器中的无缝行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12561345/

相关文章:

javascript - 在 javascript 中随机发牌 - jquery

asp.net - 从 View 中的表中选择多个数据 asp.net MVC4 Razor

javascript - 如何从 react-hook-form + Redux 调度

javascript - 将上下文添加到 Mongoose 回调

javascript - val ('' ) 删除动态表中的所有值

c# - 搜索功能概念

javascript - ASP.NET TreeView 可以向上而不是向下展开吗?

javascript - 悬停在一个元素上更改另一个元素的背景图像

javascript - 无法在主干中打开弹出式 oAuth 身份验证

javascript - 如何将动画应用于列表中的元素