onbeforeunload 事件是非 W3C DOM-Event 标准事件,它属于 BOM (Browser Object Model) 范畴。到现在为止 BOM 还没有被标准化,它由各个浏览器厂商制定,因此会有实现差异。时至今日,HTML5 规范草案中已经开始标准化 BOM,遗憾的是 onbeforeunload 事件的触发条件还没有在草案中作出详细说明。根据 MSDN 中描述,IE 的 onbeforeunload 事件可由以下这些条件触发:关闭当前浏览器窗口。导航到另一个进入一个新的地址或选择一个喜欢的位置。单击后退,前进,刷新,或主页按钮。点击一个链接到新页面。调用 超链接的 click 方法。调用 document.write 方法。调用 document.open 方法。调用 document.close 方法。调用 window.close 方法。调用 window.open 方法,窗口名称设置值为 _self。调用 window.navigate 或 NavigateAndFind 方法。调用 location.replace 方法。调用 location.reload 方法。指定一个 location.href 属性的新值。使用 submit 按键提交表单,或调用 form.submit 方法。Chrome Safari 在调用 document.write、document.open、document.close 方法以及 "javascipt:" 伪协议时,不会触发 onbeforeunload 事件。具体各浏览器情况,查阅:http://w3help.org/zh-cn/causes/BX2047
这个问题你应该通过百度或谷歌来解决最好。 这是我在百度找的答案:window.onbeforeunload=function(event){ if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){ return "你关闭了浏览器" }else{ return "你正在刷新页面" } }顺便在百度的时候找到了一个解释onbeforeunload兼容性的好文章 http://www.w3help.org/zh-cn/causes/BX...
onbeforeunload 事件是非 W3C DOM-Event 标准事件,它属于 BOM (Browser Object Model) 范畴。到现在为止 BOM 还没有被标准化,它由各个浏览器厂商制定,因此会有实现差异。
时至今日,HTML5 规范草案中已经开始标准化 BOM,遗憾的是 onbeforeunload 事件的触发条件还没有在草案中作出详细说明。
根据 MSDN 中描述,IE 的 onbeforeunload 事件可由以下这些条件触发:
Chrome Safari 在调用 document.write、document.open、document.close 方法以及 "javascipt:" 伪协议时,不会触发 onbeforeunload 事件。
具体各浏览器情况,查阅:http://w3help.org/zh-cn/causes/BX2047