|
|
1
2
|
|
|
2
1
在处理程序中设置一个变量,以防止第二次出现对话框。之后使用setTimeout将其重置。 |
|
|
3
1
这绝对是一个FF错误。我已经在 https://bugzilla.mozilla.org/show_bug.cgi?id=531199 |
|
|
4
1
我找到的最好的解决方案是使用一个标志全局变量,它在这么多毫秒(比如500毫秒)后被重置(这可以确保函数可以再次调用,但不会在出现后立即调用)。 请参阅中的最后一个代码: |
|
|
5
1
我在Chrome21、火狐14、IE7-9、Safari5(在PC上)中发现了这个问题。 以下内容适用于所有这些浏览器。如果在事件期间删除window.onbeforeunload函数,这将阻止第二次调用。如果用户决定留在页面上,技巧是重置window.onbeforeunload函数。
|
|
|
6
0
在处理程序内创建设置为true的全局变量。仅当此变量为假时显示警报/弹出窗口。 |
|
|
7
0
我使用以下代码段跟踪exitcount 当页面加载时,初始化以下变量exitcount
在窗口卸载事件中
|
|
|
8
0
我发现,不要自己调用confirm(),只需在beforeunload事件中执行event.preventDefault();即可。火狐会弹出自己的确认对话框。 我不确定这是否是正确/标准的做法,但他们就是这样做的。 |
|
|
9
-1
我有一个文档正在用window.open打开另一个弹出窗口。在最初的窗口中,我(使用jquery)注册了“卸载”事件的侦听器,如下所示:
我看到这个页面是因为事件实际上触发了两次。我发现它不是一个bug,它会触发两次,因为它会触发一次“about:blank”页面被您的页面替换,另一个页面被卸载。 我要做的就是通过查询原始事件来过滤我感兴趣的事件:
我不知道这是否适用于最初的问题,因为这是打开另一个窗口的特殊情况,但我希望它有帮助。 |
|
|
DeadlyChambers · 窗open在卸载前点火 8 年前 |