window.onbeforeunload与window.onunload事件都是在用户离开页面时触发,但window.onbeforeunload是在window.onunload之前执行。下面是主流浏览器对这两个事件的支持情况。
| Firefox3.6 | Chrome5 | IE8 | Opera10.6 | |
| onbeforeunload | 支持 | 支持 | 支持 | 不支持 |
| onunload | 支持 | 支持 | 支持 | 不支持 |
| 在onunload中执行window.open | 支持 | 不支持 | 支持 | 不支持 |
基本用法
下面是这两个事件的基本用法:
window.onbeforeunload = function () {
return "Something you want to say";
};
window.onunload = function () {
//window.open("http://fwso.cn");
//alert("Ok");
//More Logic ...
};
触发条件
| onbeforeunload | onunload | |
| 关闭浏览器窗口 | + | + |
| 关闭页面标签窗口 | + | + |
| 输入新地址 | + | + |
| 从书签打开新页面 | + | + |
| 刷新/前进/后退 | + | + |
| 脚本重定向 | + | + |
| Submit表单 | + | + |
当以上事件发生时,浏览器会弹出以下或类型的窗口,如果确定,onunload事件被触发,如果取消则继续停留在当前页面。
