我在我的web应用程序中遇到了一个奇怪的问题。
有一个onBeforeUnload事件的侦听器,我在其中提示用户确认他是否真的想离开页面。
它工作得很好,正如预期的那样。但我正面临着一个间歇性的问题。有时,onBeforeUnload事件会同时触发多次(大约100次)。所以我得到了尽可能多的“确认导航”弹出窗口。我不确定为什么会触发这么多事件。
我向用户确认他们没有按下刷新或后退按钮。我添加了一些日志记录,并确认了这一点。
它在firefox和IE中运行良好。只有在chrome中,我才会面对这个问题。用户每天至少报告一次此问题,并重新启动浏览器以再次使用应用程序。
我的问题是为什么会触发多个事件。什么类型的操作会导致这种情况的发生?
注意:我的页面有一些iframe。但是它们都没有onBeforeUnload的监听器。
编辑:
我使用javascript添加事件,如下所示。
window.onbeforeunload = function() {
return "some message here";
}发布于 2012-09-05 17:12:32
您应该添加一个变量,并根据该变量仅显示一次提示
var prompted = false;
window.onbeforeunload = function(){
if(!prompted){
// code here
prompted = true;
return 'You are leaving ....';
}
}https://stackoverflow.com/questions/12277921
复制相似问题