【发布时间】:2011-05-18 00:55:48
【问题描述】:
我有这段代码:
window.onbeforeunload = 函数(){ 做点什么(); return "你确定要离开吗"; }在 Firefox 中,当用户离开页面时,doSomething() 首先被执行,然后弹出警报。
在 IE 和 Chrome 中,警报首先弹出,然后如果用户决定留下doSomething()
被执行。
有没有办法让 IE 和 Chrome 的行为像 Firefox。我想在弹出窗口之前执行doSomething()。
【问题讨论】:
-
在我的工作中,我们这样做:
if(hasChanges && confirm('do you want to save?')) { saveToDb(); };,我知道这不是同一个例子,但尝试使用将最后一行更改为return confirm("Are you sure you want to leave")。 -
顺便说一句:jsfiddle.net/whd9y 在我电脑上的所有浏览器 (IE/FF/GC) 上都一样。
-
@Alxandr :: jsfiddle.net/whd9y/1 在 IE 和 FF 中试试这个。在 IE 中,它不会更改 div 的 html,直到用户选择留在同一页面上。
-
这只是 GUI 不显示更新,直到您关闭弹出窗口。 GUI 线程被阻塞,因此无法显示更改。
标签: javascript google-chrome internet-explorer firefox dom-events