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首页代码时一行一行地对齐了。。。
看完了^.^,如果觉得这篇文章对你有用或者有
问题,请留言告诉我,thank you !
文章为原创的话,转载请注明出处.不敢流泪-《html页面离开时提示》