window.onload用法

  网页中的javaScript脚本代码往往需要在html文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式:

  • 将脚本代码放在网页的底端即在</body>之前,这样在运行脚本代码的时候,可以确保DOM已经加载完成。
  • 在window.onload方法中执行操作相应的脚本

可以用下面这种方式将一个方法传给window.onload:

1  window.onload = fun1;
2   function fun1(){
3     alert("fun1");
4   }

  假设需要执行2个方法或者更多方法,我们尝试用上面方法:

1   window.onload = fun1;
2   window.onload = fun2;
3   function fun1(){
4     alert("fun1");
5   }
6   function fun2(){
7     alert("fun2");
8   }

  发现页面只弹出了“fun2”的提示框,证明window.onload方法具有覆盖性。

  如何解决这个问题呢?首先定义一个带一个参数的方法,参数类型为function类型,变量保存之前onload方法,然后判断其类型,如果其类型不等于function类型,说明此时为window.onload第一次被方法赋值(window.onload初始类型为Object,被方法赋值后其类型变为function),否则重新赋值windos.onload一个匿名方法,方法体里面首先执行原onload中的代码,然后执行传入方法。

  

 1   onLoadlistener(fun1);
 2
 3   onLoadlistener(fun2);
 4
 5   onLoadlistener(fun3);
 6
 7   function fun1(){
 8     alert("fun1");
 9   }
10
11   function fun2(){
12     alert("fun2");
13   }
14
15   function fun3(){
16     alert("fun3");
17   }
18
19   function onLoadlistener(func){
20       var oldonLoad=window.onload;
21       if(typeof oldonLoad !="function") {
22           window.onload=func;
23       }else{
24           window.onload=function(){
25             oldonLoad();
26             func();
27           }
28       }
29   }

依次输出 "fun1"、"fun2"、"fun3",此方法会按照添加function的顺序执行。

时间: 2024-08-26 09:21:32

window.onload用法的相关文章

window.onload用法详解

window.onload用法详解: 网页中的javascript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式: 一.将脚本代码放在网页的低端,这样在运行脚本代码的时候,可以确保要操作的对象已经加载完成. 二.通过window.onload来执行脚本代码. 第一种方式感觉比较凌乱(其实推荐使用),往往我们需要将脚本代码放在一个更为合适的地方,那么window.onload方式就是一个更好的选择.window.onloa

js中window.onload与jquery中$(document.ready())的区别

$(document).ready()是在DOM结构载入完后执行的,而window.onload是得在所有文件都加载完后执行的,注意区别,一个是DOM加载完,一个是所有文件加载完 耳听为虚,眼见为实.通过下面的实例可查看两者的异同(注意:aa.jpg最好是一张大容量图片) <html> <head> <script type='text/javascript' src='jquery-1.3.2.min.js'></script> <script ty

about &quot;window.onload&quot;

在前几天一次练习中因为我要在页面加载完成后调用一个函数,于是我在javascript中用了window. onload,这个方法以前从学习js就在使用,有时还用来调用多个函数.然而我在这次想偷懒,就这样写了一段代码: window.onload=function name(){ $(".left_div").slideDown("show"); } 因为原本window.onload=function(){·······}就是一个匿名函数,所以我像上面这样写并没有错

with(window) onload=onresize=function(){} 写法

with的用法: with(对象A) { 语句块 } 语句块中可以直接使用 对象A中的属性和方法 --------------------------------------------------------------------------------------------- 此句应该和window.onload=onresize=function(){} 应该相同吧

js 完全分离 window.onload=

js 完全分离  window.onload= <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>TAB菜单</title> <script type="text/javascript"

jquery $(document).ready() 与window.onload的区别

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

JavaScript tips:window.onload与$(document).ready()的差异

1.window.onload在$(document).ready()之后执行 原因:二者触发与否,都是依据document.readyState这个属性. (1)document.readyState的值:uninitialized.loading.interactive.complete(这四个值,依据时间先后排序). (2)当其值为interactive时,会触发documentContentLoaded事件,JQuery.ready()就是对documentContentLoaded事件

关于window.onload,window.onbeforeload与window.onunload

★  window.onload  当页面加载完毕的时候执行,即在当前页面进行其他操作之前执行.如,刚进入某个网页的弹窗提示. (  与window.onload相近的可以参考我写的另外一篇记录"比较body.onload(function()).$(document).ready(function())与$(windows).load(function)"  ) ★  window.onbeforeunload 与 window.onunload 的比较 window.onbefor

JS 页面加载触发事件 document.ready和window.onload的区别

document.ready和onload的区别——JavaScript文档加载完成事件页面加载完成有两种事件: 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件): 二是onload,指示页面包含图片等文件在内的所有元素都加载完成. 1.Dom Ready 使用jq时一般都是这么开始写脚本的: $(function(){ // do something }); 例如: $(function() { $("a").click(function() { alert(&