addLoadEvent(func)函数理解——《Javascript DOM编程艺术读书笔记》

来源:互联网 发布:工信部大数据工程师 编辑:程序博客网 时间:2024/05/24 00:23

----------------------------------------------个人学习整理,转载请注明----------------------------------------------

之前尝试了书里的image gallery的例子,发现javascript效果怎么按都没有效果。找了源代码学习,才发现是忘记了里面的addLoadEvent(func)函数。

看了以后也不是很理解,就google了一些解释,终于有了一个清晰的认识。也顺便跟大家一起分享我的学习成果:

之前javascript不起作用的原因:因为javascript文件执行顺序也是自顶向下,而且是包含在html文件里面的<head>标签里面执行的,所以执行的时候,并没有所谓的元素结点,所以函数自然不起作用。

而addLoadEvent(func)函数的作用正是将所有js函数准备着,等整个html文档下载完毕之后再启动,这个时候,具备了所用到的元素结点,也就起作用了。

function addLoadEvent(func) {  var oldonload = window.onload;              //将响应函数赋予oldonload对象,如果oldonload是firstfunction()就执行firstfunction()  if (typeof window.onload != 'function') {   //判断之前有没有调用函数    window.onload = func;                     //没有调用函数就执行当前函数  } else {    window.onload = function() {              //已经调用了函数的 就调用一个匿名函数,包含了之前调用的函数和当前函数      oldonload();      func();    }  }}

顺便推荐一本书:《Javascript DOM 编程艺术》