BOM onload onunload onbeforeload的区别

Onload,Onunload和onbeforeunload方法的异同 
一 二种方法比较 
1 onload的意思是当页面加载完毕的时候执行. 
2 相同点:Onunload,onbeforeunload都是在刷新或关闭时调用 
3 不同点:Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取,而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的.Onbeforeunload可以做到,onbeforeunload在onunload之前执行,它还可以阻止onunload的执行. 
二 事件描述 
1  onbeforeunload事件: 
 说明:目前三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持. 
描述:事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。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+/Win, Mozilla 1.7a+, Netscape 7.2+, Firefox0.9+ 
2  onunload事件 
  描述:当用户关闭一个页面时触发 onunload 事件。 
  触发于: 
   •关闭浏览器窗口 
   •通过地址栏或收藏夹前往其他页面的时候 
   •点击返回,前进,刷新,主页其中一个的时候 
   •点击 一个前往其他页面的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的表单的时候。

示例说明: 
google加载相册的原理: 
一个页面加载最慢的往往是页面中的大图,在用google的Picasa 网络相册时,google会一共生成7种大小的缩略图存放在他的服务器上,然后在大图的浏览页,他会先加载一个缩略图 
,然后等大图完全加载后再替换掉原来的缩略图,实现那种模糊到清晰的效果。 
代码如下: 
<body> 
<img id="pic" src="small.jpg" /> 
</body> 
<script type="text/javascript"> 
var p = new Image(); 
var loaded = false; 
p.onload = p.onreadystatechange = function() 

if (!loaded && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") ) 

  document.getElemengtById(‘pic‘).src = ‘big.jpg‘; 


p.src="big.jpg";

window.onunload = function() 

//alert(‘关闭页面‘); 
}

window.onbeforeunload = function(e) 

          var n = window.event.screenX - window.screenLeft;   
           var b = n > document.documentElement.scrollWidth-20;   
           if(b && window.event.clientY < 0 || window.event.altKey)   
           {   
                  //这里可以放置你想做的操作代码  
// alert("关闭窗口"); 
  
           }else{ 
   // alert("刷新窗口"); 
   }

或者这样: 
          event.returnValue="确定离开当前页面吗?";


</script> 
这段代码就是判断触发onbeforeunload事件时,鼠标是否点击了关闭按钮,或者按了ALT+F4来关闭网页,如果是,则认为系统是关闭网页,否则在认为系统是刷新网页. 
3 onload事件 
onload的意思是当页面加载完毕的时候执行. 当某一事件被触发时需要执行某个函数,在IE下可用attachEvent,在FF下则要用addEventListener. 
示例代码: 
attachEvent()有两个参数,第一个是事件名称,第二个是需执行的函数; 
addEventListener()有三个参数,第一个是事件名称,但与IE事件不同的是,事件不带"on",比如"onsubmit"在这里应为"submit",第二个是需执行的函数,第三个参数为布尔值;

示例代码: 
if (document.all){ 
window.attachEvent(‘onload‘,函数名)//IE中 
}else{ 
window.addEventListener(‘load‘,函数名,false);//firefox 
}

时间: 2024-10-14 04:03:57

BOM onload onunload onbeforeload的区别的相关文章

jquery学习笔记一之window.onload与$(document).ready()区别

1.window.onload与$(document).ready()区别 执行时机:前者必须等待网页中所有的内容加载完毕后(包括图片)才能执行,后者 网页中说有的Dom结构绘制完毕后就执行,可能Dom元素关联的内容并没有加载完成. <!DOCTYPE html> <html> <head> <title>test</title> <script type="text/javascript" src="js/j

window.onload()和$(document).ready()区别

1 $(window).load(function() { 2 $("#btn-upload").click(function(){ //比如说: 3 uploadPhotos(); 4 }); 5 }); window.onload()和$(document).ready()区别

事件(Event)(onclick,onchange,onload,onunload,onfocus,onblur,onselect,onmuse)【转载】

ylbtech-Event:事件(Event)对象 事件(Event) HTML 4.0 事件属性 onclick onchange onload onunload onselect onmouse onfoucs-onblur checkbox-onclick JS:1.6.0,事件(Event)返回顶部 HTML标记 事件 当....时候触发此事件 <A> onClick 用户点击超链接 onMouseOver 鼠标移动到超链接上边 onMouseOut 鼠标离开超链接 <AREA&

window.onload与$.ready的区别

在做图书管理系统的时候,有用到window.onload(){}方法,但是遇到了一个问题,就是怎么都不执行,到底是为什么呢?愁了半天.后来经师姐指点改用了$.ready(){}.在我的浅浅的了解中认为他们是一样的,那为什么这个行,而那个不行呢?so,上网查! Jquery中的$.ready(){}的作用类似于传统的JS中的window.onload方法.不过与windows.onload方法还是有区别的. 区别: 执行时间: window.onload()必须等到页面内容全部加载完毕后才能执行,

window.onload与document.ready区别

最基本的区别 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 $(document).ready()可以同时编写多个,并且都可以得到执行 3.简化写法 window.onload没有简化写法 $(document).ready(function()

window.onload和document.ready区别

1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.         $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个          $(document).ready()可以同时编写多个,并且都可以得到执行 3.简化写法 window.onload没有简化写法          $(documen

window.onload()和$(function(){});的区别

1.window.onload必须等到页面中所有元素加载完之后才会执行(包括图片.视频等)而$(function(){});是在结构绘制完毕之后执行,二者的执行时机是不同的,一般来说后者会首先执行 2.window.onload只能存在一个,即时存在多个也只会执行一个:而$(function(){})则可以存在多个,且多个都会执行: 3.window.onload只有一种写法,而$(function(){})可以写成:$(document).ready(function(){});效果一样.

windows.onload和 document.ready区别

在Jquery里面,我们可以看到两种写法:$(function(){}) 和$(document).ready(function(){}) 这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完). 而window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数.也就是说$(document).ready要比window.onload先执行

Window.onload与$(document).ready()区别

这个对比图是从<锋利的jQuery>书上截取下来的,我自己也总结了一下: diff-1: Window.onload是网页中全部元素(包括元素的关联文件)完全加载到浏览器后才能执行,$(document).ready()解析出DOM树即可访问节点和属性. 举个例子: Flicker这种大型图片网站,为网页中所有图片添加某些行为,例如mouseover的时候可以显示放大图,如果用onload,那么必须等每一幅图都加载浏览器才能进行操作,如果用ready那么只要DOM树就绪就可以操作. DOM树就