关闭→
当前位置:学智社>游戏数码>IT技术>复用window.onload方法

复用window.onload方法

学智社 人气:1.51W

Javascript中,ad是指当页面加载完成后,要触发的事件。比如页面加载完,要显示某个欢迎界面,这时就需要onload方法。
通常的用法如下: ad = my_onload_function;
这种方法有个问题就是,如果onload时需要调用多个方法时,这样写的话,后面调用的会覆盖前面的,最终只有最后面调用的方法会执行,前面的不会。
那要怎样才能复用onload方法,让其调用的方法都执行呢?

操作方法

(01)首先我们看下问题,如图,页面加载完后,从log输出的信息看只有 function2输出, 第一个方法的调用被覆盖,没有执行输出

复用ad方法
复用ad方法 第2张

(02)方法一: 这个问题,首先我们就是要用JQuery库了,引入Jquery库对dom的其他操作也方便。引入Jquery库文件,并把代码改成如图,

复用ad方法 第3张

(03)$(document)y(function() {}); 他意思是当文档准备好(加载完),就执行里面的代码,相当于onload事件了。ready方法可以写多个,而不会相互覆盖,直接解决了上面的问题,复用了onload方法,看下运行结果,从log信息输出来看,正确按顺序执行了二个function了。

复用ad方法 第4张

(04)如果你不想引入Jquery脚本库,也是有方法解决的。方法二, 如图,把onload方法给 all_onload_function,然后其他需要在 onload执行的方法,全部在all_onload_function里进行调用执行。这个方法的缺点是,当多人协作开发,其他人不知道你也定义了onload方法,他那边也定义一个onload方法就会发生原来覆盖的问题了。

复用ad方法 第5张

(05)方法三,我们添加一个 addOnLoadEvent方法,这个方法首先判断onload事件是否已经有了对应的方法,没有的话,直接赋值给参数传进来的方法。如果原先已经有了,则重新定义onload方法,先调用原来的方法,再调用参数传进来的新方法。如图

复用ad方法 第6张

(06)这个方法从理论上说,也是支持无限个onload方法的,运行结果如图,正确按顺序执行了三个方法。

复用ad方法 第7张

(07)总结,方法二适合个人开发,并要时刻注意不能重复写 ad, 因为会被覆盖。方法一和方法三都可以有无限多个Onload的方法,不用担心被覆盖。如果你不需要引入额外的脚本库,就用方法三。如果你的代码里已经引入了Jquery库的,则可以使用方法一。脚本库省却了我们很多工作,我们不需要做太多重复的工作,只需要调用就行了。

TAG标签:#复用 #windowonload #