论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Javascript教程
Tag:验证,特效,入门,实例,验证,表单,特效,正则表达式,跑马灯,document,函数,代码,getElementByID,菜单,图片,视频教程

共享onload事件

文章类别:Javascript | 发表日期:2012-2-22 17:28:05

假设两个函数:firstFunction和secondFunction。如果想让这两个函数都在页面加载时得到执行,该怎么办?如果把它们逐渐绑定到onload事件上,它们当中将只有最后那个才会被实际执行:

window.onload = firstFunction;
window.onload = secondFunction;

secondFunction 将取代firstFunction。你可能会想:每个事件处理函数只能绑定一条指令。

有一种办法可以避免这一难题:可以先创建一个匿名函数来容纳这两个函数,然后把那个匿名函数绑定到onload事件上,如下所示:

window.onload = function () {
    firstFunction();
    secondFunction();
}

他确实能很好的工作——在需要绑定的函数不是很多的时候,这应该是最简单的解决方案了。

这里还有一个弹性最佳的解决方案——不管你打算在页面加载完毕时执行多少个函数,他都可以应付自如。这个方案需要额外编写一些代码,但好处是一旦有了那些代码,把函数绑定到window.onload事件就非常易行了。

下面是addLoadEvent函数将要完成的操作。

  • 把现有的window.onload事件处理函数的值存入变量oldonload。
  • 如果在这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它。
  • 如果在这个处理函数上已绑定了一些函数,就把新函数追加到现有指令的末尾。
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function () {
            oldonload();
            func();
        }
    }
}

这将把那些在页面加载完毕时执行的函数创建为一个队列。如果想把刚才那两个函数添加到队列里去,只需要写出以下代码就行了:

addLoadEvent(firstFunction);
addLoadEvent(secondFunction);

这个函数非常实用,尤其是在代码量变得越来越复杂的时候。无论打算在页面加载完毕时执行多少个函数,只要多写一条语句就就可以安排好一切。

视频教程列表
文章教程搜索
 
Javascript推荐教程
Javascript热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058