jQuery中的unload()事件为什么不起作用
本帖最后由 wozaixiaoximen 于 2013-03-13 12:58:39 编辑
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(window).unload(function(){
alert('adsf');
});
});
</script>
</head>
<body>
<div>
<p><a href="http://www.baidu.com">hello world</a></p>
</div>
</body>
</html>
注:我的jquery-1.9.1.min.js路径是对的。
W3C中说:
定义和用法
当用户离开页面时,会发生 unload 事件。
具体来说,当发生以下情况时,会发出 unload 事件:
点击某个离开页面的链接
在地址栏中键入了新的 URL
使用前进或后退按钮
关闭浏览器
重新加载页面
可是我在火狐、IE、谷歌浏览器下看不到效果。我的unload()事件写的有错吗?怎样才能出现unload()事件?请高人指点
------解决方案--------------------
在beforeunload事件里,不需要alert,该事件会自动产生一个弹出框,
就算你加了alert也是没效果的。
另外,要使beforeunload事件能自动弹出框,必须得有返回值,如:
$(window).beforeunload(function(event){
var message = “I’m really going to miss you if you go.”;
event.returnValue = message;
return message;
});
上面的代码可以达到关闭、点击链接、输入地址都窗口弹出框的效果。
把返回值message设为你想显示的信息