2

我的 Web 应用程序遇到了一个奇怪的问题。

有一个 onBeforeUnload 事件的侦听器,我在其中提示用户确认他是否真的要离开页面。

它工作正常,符合预期。但我面临一个间歇性问题。有时,onBeforeUnload 事件会同时触发多次(大约 100 次)。所以我得到了尽可能多的“确认导航”弹出窗口。我不确定为什么会触发这么多事件。

我与用户确认他们没有按刷新或返回按钮。我添加了一些日志记录并确认了相同的内容。

它在 Firefox 和 IE 中运行良好。只有在 chrome 中,我面临这个问题。用户每天至少报告一次此问题,并且他们正在重新启动浏览器以再次使用该应用程序。

我的问题是为什么会触发多个事件。什么样的行为会导致这种情况发生?

注意:我的页面有一些 iframe。但是他们都没有 onBeforeUnload 的监听器。

编辑:

我正在使用 javascript 添加事件,如下所示。

    window.onbeforeunload = function() {
          return "some message here";
    }
4

1 回答 1

0

您应该添加一个变量并根据该变量仅显示一次提示

var prompted = false;

window.onbeforeunload = function(){
    if(!prompted){
        // code here
        prompted = true;

        return 'You are leaving ....';
    }
}
于 2012-09-05T09:12:32.463 回答