您当前的位置:首页 > 互联网教程

js中window.load事件 怎么用啊

发布时间:2025-05-23 13:29:01    发布人:远客网络

js中window.load事件 怎么用啊

一、js中window.load事件 怎么用啊

1、在JavaScript中,使用window.onload事件可以让函数在页面完全加载完毕后执行。这里所谓的“页面完全加载”,是指页面的所有资源,如HTML文档、CSS文件、图片等,都已经加载完成,而不是在DOM元素加载完成后就执行。因此,如果使用window.onload=aa()的形式,它会确保函数aa()在所有资源加载完成后执行。

2、值得注意的是,window.onload可以接受一个函数作为参数,也可以直接赋值为一个函数表达式。例如:

3、window.onload= function(){ console.log('页面加载完成');};

4、这种方式与直接将函数名赋值给window.onload等价,即:

5、window.onload= function(){ console.log('页面加载完成');};

6、window.onload= function(){ console.log('页面加载完成');};

7、然而,直接将函数名赋值给window.onload可能会导致函数立即执行。为了避免这种情况,可以使用立即执行函数表达式(IIFE)的形式:

8、window.onload=(function(){ console.log('页面加载完成');})();

9、这种方式可以确保函数在页面加载完成后执行,而不是在页面加载过程中立即执行。

10、另外,可以将多个函数挂载到window.onload事件上,这样当页面加载完成后,所有挂载的函数都会被依次执行。例如:

11、window.onload= function(){ console.log('页面加载完成');}

12、window.onload= function(){ console.log('附加函数执行');}

13、在实际开发中,建议使用addEventListener方法来为window对象添加onload事件监听器,这样可以避免覆盖之前已经添加的监听器,同时也能支持多个监听器的添加。例如:

14、window.addEventListener('load', function(){ console.log('页面加载完成');});

15、这种方式更灵活,更适合复杂的应用场景。

二、JavaScript里怎样实现等待外部JS文件LOAD之后再执行下一步

1、这样,只有外部JS文件LOAD之后,才能调用load(),而load()这时是一个“没有功能”的函数,当然加上功能更好

2、以上只是设想没有尝试,原因是:

3、在通常情况下,当网页代码的<head区加上:

4、<SCRIPT language=javascript src=外部JS文件.js</SCRIPT后,该外部JS文件会在网页下载的初期进入浏览器缓存做好被调用准备,所以“无需等待”谨供参考

三、js动态加载事件的几种方法总结_javascript技巧

1、有些时候需要动态加载javascript事件的一些方法

2、往往我们需要在 JS中动态添加事件,这就涉及到浏览器兼容性问题了,以下谈及的几种方法,我们也常常混合使用。

3、var obj= document.getElementById("obj");

4、obj.setAttribute("onclick","javascript:alert('测试');");

5、这里利用 setAttribute指定 onclick属性,简单,很好理解,

6、但是:IE不支持,IE并不是不支持 setAttribute这个函数,而是不支持用 setAttribute设置某些属性,包括对象属性、集合属性、事件属性,也就是说用 setAttribute设置 style、onclick、onmouseover这些属性在 IE中是行不通的。

7、方法二、用 attachEvent和 addEventListener

8、obj.attachEvent("onclick", Foo);

9、obj.attachEvent("onclick", function(){alert("测试");});

10、其它浏览器支持 addEventListener

11、obj.addEventListener("click", Foo, false);

12、obj.addEventListener("click", function(){alert("测试");}, false);

13、注意 attachEvent的事件带 on,如 onclick,而 addEventListener不带 on,如 click。

14、顺便说一下 addEventListener的第三个参数(虽然很少用) useCapture-如果为 true,则 useCapture指示用户希望启动捕获。启动捕获后,所有指定类型的事件将在被指派到树中其下面的任何 EventTargets之前指派给已注册的 EventListener。正在通过树向上 bubbling的事件将不触发指定的使用捕获的 EventListener。

15、这在多个浏览器中均支持,这是属于旧的规范(方法二属于 DOM2的规范),不过由于使用方便,用的场合也比较多。

16、obj.setAttribute('onclick',document.all? eval(function(){show()}):'javascript:show()');

17、attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)

18、addEventListener方法用于 Mozilla系列

19、document.getElementById("btn").onclick= method1;

20、document.getElementById("btn").onclick= method2;

21、document.getElementById("btn").onclick= method3;

22、如果这样写,那么将会只有medhot3被执行

23、var btn1Obj= document.getElementById("btn1");

24、//object.attachEvent(event,function);

25、btn1Obj.attachEvent("onclick",method1);

26、btn1Obj.attachEvent("onclick",method2);

27、btn1Obj.attachEvent("onclick",method3);

28、执行顺序为method3->method2->method1

29、如果是Mozilla系列,并不支持该方法,需要用到addEventListener

30、var btn1Obj= document.getElementById("btn1");

31、//element.addEventListener(type,listener,useCapture);

32、btn1Obj.addEventListener("click",method1,false);

33、btn1Obj.addEventListener("click",method2,false);

34、btn1Obj.addEventListener("click",method3,false);

35、执行顺序为method1->method2->method3

36、var el= EDITFORM_DOCUMENT.body;

37、//先取得对象,EDITFORM_DOCUMENT实为一个iframe

38、 el.addEventListener('click', KindDisableMenu, false);

39、 el.attachEvent('onclick', KindDisableMenu);

40、 window.addEventListener('load', _uCO, false);

41、} else if(window.attachEvent){

42、 window.attachEvent('onload', _uCO);