html页面离开时提示

早上用WEBQQ时,离开页面时它提示说:“你确定要离开吗?”好奇这个怎么做出来的。查了些资料,到现在竟然花了一天的时间。
在IE下实现很简单,因为有个window.event全局变量。在onbeforeunload事件中调用函数,对window.event.returnValue赋值,即可实现。其returnValue有默认值是不可以改变的。

<html>
<head>
<script language="javascript" type="text/javascript">
 
function closePrompt(event1)
{
        window.event.returnValue = "navigation leave test";
}
</script>
</head>
<body onbeforeunload="closePrompt(event)">
<a href="http://www.boluor.com">Click here to navigate to
www.boluor.com</a>
</body>
</html>


但是上述代码在Firefox下却没有出现提示。查了下才知道,firefox并没有window.event这个全局变量。FF在事件触发的时候才会创建event对象。所以上面的closePrompt函数需要修改传参数并且修改为:

function closePrompt(event1)
{
	event1 =event1 || window.event;    //FF下window.event为空,IE下不传参数所以event1为空。
	event1.returnValue = "navigation leave test";
}

这种写法在小程序中没什么,但是如果在一个大程序中,很多事件都需要获得event对象,那这种传来传去的写法就不好了。
然后去搜索webqq页面源代码,竟然没搜到onbeforeunload和onunload关键字。只好一个个的去把js代码下下来,搜索webqq离开时提示的那句话。终于在main.js中找到了,但是这个又调用了util.js,里面有WEBQQ namespace。。。看不下去了。不过搜到了一款很好的js代码格式化工具Javascript Code Improver ,不用像我第一次研究baidu首页代码时一行一行地对齐了。。。

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*

click to changeSecurity Code