onunload与onbeforeunload的区别

onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中或者在<body>来指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。
onbeforeunload也是在页面刷新或关闭时调用,onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。onunload是无法阻止页面的更新和关闭的。而onbeforeunload可以做到。
1、onbeforeunload事件:
说明:onbeforeunload并不是一个公共标准,最早在IE4中被引入,后来得到其它浏览器的支持。目前四大主流浏览器中firefox、chrome、IE都支持onbeforeunload事件,opera尚未支持。
语法:

 
object.onbeforeunload = handler 

   
描述:
事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler可以设一个返回值作为该对话框的显示文本。
触发于:
·关闭浏览器窗口
·通过地址栏或收藏夹前往其他页面的时候
·点击返回,前进,刷新,主页其中一个的时候
·点击 一个前往其他页面的url连接的时候
·调用以下任意一个事件的时候:click,document.write,document.open,document.close,window.close ,window.navigate ,window.NavigateAndFind,location.replace,location.reload,form.submit.
·当用window.open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
·重新赋予location.href的值的时候。
·通过input type=”submit”按钮提交一个具有指定action的表单的时候。
可以用在以下元素:
·body, frameset, window
平台支持:
 IE4+, chrome, Firefox0.9+
示例:

window.onbeforeunload = function (e) {
  e = e || window.event;

  // For IE and Firefox prior to version 4
  if (e) {
    e.returnValue = 'Any string';
  }

  // For Safari
  return 'Any string';
};

2、onunload事件
定义和用法

onunload 事件在用户退出页面时发生。

语法

onunload="SomeJavaScriptCode"
参数 描述
SomeJavaScriptCode 必需。规定该事件发生时执行的 JavaScript。

支持该事件的 HTML 标签:
<body>, <frameset>
支持该事件的 JavaScript 对象:
window
触发于:
·关闭浏览器窗口
·通过地址栏或收藏夹前往其他页面的时候
·点击返回,前进,刷新,主页其中一个的时候
·点击 一个前往其他页面的url连接的时候
·调用以下任意一个事件的时候:click,document.write,document.open,document.close,window.close ,window .navigate ,window.NavigateAndFind,location .eplace,location.reload,form.submit.
·当用window.open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
·重新赋予location.href的值的时候。
·通过input type=”submit”按钮提交一个具有指定action的表单的时候。
平台支持:
opera尚未支持
实例:
在本例中,在页面关闭时会显示一个对话框:



发表评论

电子邮件地址不会被公开。 必填项已用*标注