×

window onload

window onload(window.onload和onload有区别吗)

admin admin 发表于2024-06-10 18:19:42 浏览16 评论0

抢沙发发表评论

大家好,今天小编来为大家解答以下的问题,关于window onload,window.onload和onload有区别吗这个很多人还不知道,现在让我们一起来看看吧!

本文目录

window.onload和onload有区别吗

window.onload是js原生的事件,$(function(){})是jQuery的方法(等价于$(document).ready(function(){}) ),两者主要有以下几点差别:1、window.onload:在页面所有资源加载完后执行,如果有多个定义则只执行最后一个2、$(function(){}):在Dom节点创建完成后执行,如果有多个定义则依次执行可以看出$(function(){})在window.onload前执行比如:页面中只有一个img标签,当img节点创建完后就会执行$(function(){})中的代码,当img的src指定的图片完全加载完后才会触发window.onload事件。

window.onload和$的区别

在Jquery里面,我们可以看到两种写法:$(function(){}) 和$(document).ready(function(){})这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。而window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。也就是说$(document).ready要比window.onload先执行。那么Jquery里面$(document).ready函数的内部是怎么实现的呢?下面我们就来看看:我们来为document添加一个ready函数:document.ready = function (callback) { ///兼容FF,Google if (document.addEventListener) { document.addEventListener(’DOMContentLoaded’, function () { document.removeEventListener(’DOMContentLoaded’, arguments.callee, false); callback(); }, false) } //兼容IE else if (document.attachEvent) { document.attachEvent(’onreadystatechange’, function () { if (document.readyState == "complete") {document.detachEvent("onreadystatechange", arguments.callee);callback();} }) } else if (document.lastChild == document.body) { callback(); } }document.ready这个函数是实现了。我们再来验证一下最上面所说的“ready要比onload先执行”:window.onload = function () {alert(’onload’);};document.ready(function () {alert(’ready’);});执行这段代码之后,你会看到浏览器里面会先弹出“ready”,在弹出onload。

怎么调用window.onload的方法

window.onload方法是在页面的所有元素都加载完毕后才会触发,包括图片。所以当链接质量不好的时候会导致该方法触发延迟。在使用的时候需要注意。 通常我们希望在Dom元素初始化完成的时候就执行操作

js window.onload 加载多个函数的方法

用法如下:functionfunc(){alert("thisiswindowonloadevent!");return;}window.onload=func;或者如下:window.onload=function(){alert("thisiswindowonloadevent!");return;}但window.onload不能同时加载多个函数。比如:复制代码代码如下:functiont(){alert("t")}functionb(){alert("b")}window.onload=t;window.onload=b;后面会把前面的覆盖,上面代码只会输出b。此时可用如下方法解决:window.onload=function(){t();b();}另一种解决方法如下:复制代码代码如下:functionaddLoadEvent(func){varoldonload=window.onload;if(typeofwindow.onload!=’function’){window.onload=func;}else{window.onload=function(){oldonload();func();}}}使用如下:复制代码代码如下:functiont(){alert("t")}functionb(){alert("b")}functionc(){alert("c")}functionaddLoadEvent(func){varoldonload=window.onload;if(typeofwindow.onload!=’function’){window.onload=func;}else{window.onload=function(){oldonload();func();}}}addLoadEvent(t);addLoadEvent(b);addLoadEvent(c);//等价于window.onload=function(){t();b();c();}个人以为直接使用隐式函数(如:window.onload=function(){t();b();c();})更快捷,当然使用addLoadEvent更professional,各取所好吧!

window.onload是做什么的

当页面加载的时候可以调用某些函数例如定义一个function a(){}window.onload = a;在页面加载的时候就可以调用函数a了还可以 window.onload = =function() { a(); b(); }来调用多个方法

js的 window.load 和window.onload 有什么区别

JavaScript 中的以下代码 :Window.onload = function (){// 代码 } 等价于 Jquery 代码如下:$(window).load(function (){// 代码 }); 执行时机 window.load——必须等待网页中所有的内容加载完毕后 ( 包括图片 ) 才能执行 $(document).ready()——网页中所有 DOM 结构绘制完毕后就执行,可以能 DOM 元素关联的内容并没有加载完 编写个数 window.load——不能同时编写多个以下代码无法正确执行:window.onload = function(){ alert(“text1”);};window.onload = function(){ alert(“text2”);};结果只输出第二个 $(document).ready()——能同时编写多个以下代码正确执行:$(document).ready(function(){ alert(“Hello World”);});$(document).ready(function(){ alert(“Hello again”);});结果两次都输出 以 浏览器装载文档为例,在页面加载完毕后,浏览器会通过 Javascript 为 DOM 元素添加事件。在常规的 Javascript 代码中,通常使用 window.onload 方法,而在 Jquery 中,使用的是$(document).ready() 方法。 $(document).ready() 方法是事件模块中最重要一个函数,可以极大的提高Web 应用程序的速度。另外,需要注意一点,由于在 $(document).ready() 方法内注册的事件,只要 DOM 就绪就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的 html 下载完毕,并且已经解析为 DOM 树了,但很有可能图片还没有加载完毕,所以例如图片的高度和宽度这样的属性此时不一定有效。要解决这个问题,可以使用 Jquery 中另一个关于页面加载的方法 ---load() 方法。 Load() 方法会在元素的onload 事件中绑定一个处理函数。如果处理函数绑定给 window 对象,则会在所有内容 ( 包括窗口、框架、对象和图像等 ) 加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。 总结:js:window.onload页面一运行就执行该函数,执行该函数时,可能页面中的图片还没有加载完成!jquery: $(window).load()页面中的图片或其它东西加载完成之后,执行该函数。

在html中使用window.onload和onload的区别

window.onload = init ; 是 把函数值赋给onload属性。 上面这句赋值时不会执行Init函数,且onload对应的方法是init函数window.onload = init(); 是调用函数init.上面这句赋值时会执行Init函数,且onload对应的方法不是init函数,而是执行结果

如果你还想了解更多这方面的信息,记得收藏关注本站。