JavaScript 中 onload 事件如何绑定多个方法

页面加载完毕时会触发 onload 事件。基于内容(HTML)要与行为(JavaScript)分离的编码思想,我们需要将一些对页面的初始化操作写在方法内,并通过window.onload = functionName 调用这些方法.
需要调用多个方法时,若使用 window.onload = functionA; window.onload = functionB;,它们之中只有最后一个方法会被实际调用。那么应如何实现调用多个方法呢?

  1. 直接在 HTML 中编写:

    <body onload="functionA();functionB()">

    由于事件包含在 HTML 内,不符合上述『内容与行为分离』的思想,故不推荐使用这个方法。

  2. 创建一个匿名函数容纳需要调用的方法,然后将该匿名函数绑定到 onload 事件上:
    window.onload = function () {
      functionA();
      functionB();
    }

    在需要调用的函数不是太多的时候,这是最简单的解决方案了。

  3. 当需要调用的方法较多时,我们可以进一步优化,编写一个专门用于绑定 onload事件的方法:
    function addLoadEvent(func) {
        //把现有的 window.onload 事件处理函数的值存入变量
        var oldOnload = window.onload;
        if (typeof window.onload != "function") {
          //如果这个处理函数还没有绑定任何函数,就像平时那样添加新函数
          window.onload = func;
        } else {
          //如果处理函数已经绑定了一些函数,就把新函数添加到末尾
          window.onload = function() {
            oldOnload();
            func();
          }
        }
      }
    
      //接下来,我们只需要调用这个方法添加自己需要的函数就行了
      addLoadEvent(functionA);
      addLoadEvent(functionB);

    现在不管代码变得多么复杂,当我们需要在页面加载完毕时调用多少函数,只需要多写一条语句既可解决。



参考:

时间: 2024-10-19 19:26:36

JavaScript 中 onload 事件如何绑定多个方法的相关文章

javascript中onload事件如何绑定及执行顺序

onload事件,顾名思义就是为了js程序能够在网页加载成功过后进行执行.对于放在head里面的js来说,非常必要. 如何给网页绑定onload,主要有三种方式: window.onload=function(){//要执行的代码} window.addEventListener('load',函数名,false) body中添加属性<body > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo

JavaScript 中 onload 事件绑定多个方法的优化建议

页面加载完毕时会触发 onload 事件.基于内容(HTML)要与行为(JavaScript)分离的编码思想,我们需要将一些对页面的初始化操作写在方法内,并通过window.onload = functionName 调用这些方法.需要调用多个方法时,若使用 window.onload = functionA; window.onload = functionB;,它们之中只有最后一个方法会被实际调用.那么应如何实现调用多个方法呢? 直接在 HTML 中编写: <body > 由于事件包含在

JavaScript 中 onload 事件绑定多个方法

当需要调用的方法较多时,我们可以进一步优化,编写一个专门用于绑定 onload事件的方法: function addLoadEvent(func) { //把现有的 window.onload 事件处理函数的值存入变量 var oldOnload = window.onload; if (typeof window.onload != "function") { //如果这个处理函数还没有绑定任何函数,就像平时那样添加新函数 window.onload = func; } else {

javaScript中的事件三

javaScript中的事件三 先看两种错误的写法,他们的目的都是:添加两个事件: 错误方式一: window.onload=function (){ alert('event 1'); } window.onload=function (){ alert('event 2') } 错误方式二: window.onload=function (){ var obj=document.getElementById("but"); obj.onclick=function(){ alert

javascript中奇怪事件

javascript中奇怪事件 为啥叫奇怪事件了,应该是我目前掌握的知识暂时不能解释这种现象滴呀(也许可以用事件流的概念来解释滴呀) 看布局: #hideInfo{ height:100px; width:100px; background:green; position:absolute; top:20px; left:-90px; } #hideInfo span{ height:100px; width:100px; background:blue; position:absolute;

JavaScript 进阶教程一 JavaScript 中的事件流 - 事件冒泡和事件捕获

先看下面的示例代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JavaScript 中的事件冒泡与事件捕获</title> </head> <body> <div id="Red" style="width:200px;height:200px;background-color:red;padding:2

了解javascript中的事件(二)

零.寒暄 这篇博客本该出现在两个月以前,但是种种原因,搁浅了.两个月的时间,改变了许多人也改变了许多事,回头看看自己两个月前写的代码,居然有很多可笑之处,这也算是一种成长吧.实习的几个月里,全身心的投入工作,效率奇高,同时,离开学校的这段日子让我充分感受了这个社会的残酷.好酒需陈酿,来的早不如来的巧,今天跟大家分享下javascript中事件的下半部分. 如需查看本文的上一篇,请猛击了解javascript中的事件(一),注:后文如无特殊说明,提到的参考之前的博客,也是指这篇文章. 本文主要谈一

javascript中的事件

在javascript中的事件有三个方面的知识,一是事件流,二是事件处理程序,三是事件对象.下面就我个人的一点理解,分别讲述一下这三个方面的内容. 第一.事件流 事件流指的是事件按照一定的顺序触发.它有两个顺序,分别是自上而下和自下而上. 自上而下的叫做事件捕获,事件捕获指的是事件的处理将从DOM层次的根开始,而不是从触发事件的目标元素开始,事件被从目标元素的所有祖先元素依次往下传递.在这个过程中,事件会被从文档根到事件目标元素之间各个继承派生的元素所捕获,如果事件监听器在被注册时设置了useC

了解javascript中的事件(一)

零.寒暄 由于刚入职,近期事情繁多,今天好不容易中期答辩完事,晚上有一些时间,来给大家分享一篇博文. 这段时间每天写js接触事件比较多,自己会使用,但是用的时候比较混乱,现在系统的整理下,好了,闲话不多说,谈正事! 一.事件概念 什么是事件?说白了,事件是文档或浏览器中发生的特定交互瞬间!比如鼠标点击,滑过等等. 二.事件流 事件流就是描述了页面中接受事件的顺序.在浏览器发展的初期,两大浏览器厂商IE和Netscape互掐,出现了一个坑爹的情况,那就是他们对事件流的解释出现了两中截然相反的定义.