jQuery 的 unload()失效
我想实现当关闭当前选项卡的时候,弹出一个小框.但是其却不工作.
$(window).unload(function() {
alert('bye');
});
之后我又用
window.onbeforeunload = function(){alert('bye')}
依然不行.求解.
共收到
8 条回复
unload 和 beforeunload 都没法区分刷新和关闭,只要当前页面unload了就会触发(关闭,刷新,点击链接,输入地址等等)
unload 可以做些清理工作,但是不能用preventDefault来阻止页面关闭。(jquery unload )
alert实际执行了,只是大部分浏览器会阻止正在关闭的窗口弹对话框。如果你用chrome,可以打开Developer Tool并点击右下角的齿轮设置,选择 Preserve log upon navigation,可以查看到unload里的console.log。因为unload一返回,页面就关闭,如果有ajax请求什么的,都一定要同步调用(async:true),不然页面unload完资源就全部注销了。
beforeunload 如果返回值不是null或者undefined,浏览器会负责跳出个confirm对话框,返回值可以会做为提示的一部份也可能压根就不用。
http://ruby-china.org/topics/2181