onload事件-----addLoadEvent函数

  在给网页加一些特效时经常要在<body>中加入“onload”事件,即在网页加载完后执行某事件,例如:<body onload=”alert(‘欢迎光临!‘)”,但这样做有个大的缺陷,事件会在网页完全下载完后才会执行,包括网页中的图片或Flash等,如果网页中的图片比较大或有很多图,可能还没等网页完全下载完网友已经点击链接到其它网页去了,这样这个事件就没有执行了。另外在某些特殊情况下可能还修改不了网页的body参数。如在别人网站发表文章时,或用CMS整站系统时。

  这时我们会想到用“window.onload”或“document.body.onload”来替换<body>中的onload事件,的确,问题解决了,但在加载多个onload事件时或控制加裁顺序时还会出现一些问题,直到我发现“Paul Koch”写的addLoadEvent()函数后,所有问题都解决了。如果大家一定要用“window.onload”或 “document.body.onload”来替换<body>中的onload事件,建议大家用前者,Firefox浏览器中无效,即兼容性有问题。

function addLoadEvent( func ){
    var oldonload = window.onload;
    if(typeof window.onload != "function"){
        window.onload = func;
    }else{
        window.onload = function () {
            oldonload();
            func();
        };
    };
};

addLoadEvent函数主要是完成如下的操作: 

1、把现有的window.onload事件处理函数的值存入到oldonload中。

2、如果在这个处理函数上还没有绑定任何函数,就将该函数添加给它。

3、如果在这个处理函数上已经绑定了一些函数,就把该函数追加到现有指定的末尾。

调用方法:通过addLoadEvent函数,只需要调用该函数就可以进行绑定了。

addLoadEvent(firestFunction);
addLoadEvent(secondFunction);
//或
addLoadEvent(function(){
    document.body.style.backgroundColor = ‘yellow‘;
    firstFunction();
});
时间: 2024-10-15 18:20:51

onload事件-----addLoadEvent函数的相关文章

onload事件追加函数

一个html文件只能有一个onload事件,当onload事件触发时需要执行多个函数是,就要向onload事件里追加函数. function addLoad(fn){ var oldload=window.onload; if(typeof window.onload!= "function"){ window.onload=fn; }else { window.onload=function(){ oldload(); fn(); } } }

共享onload事件

在做前端工作中,我们想要设置某个函数prepare,让它在网页加载完毕后执行,会触发一个onload事件,这个事件与windows对象相关联,必须把prepare函数绑定到这个时间上,语法如下:window.onload=prepare; 这个方法可以解决我的问题,但是,如果我有两个函数firstfunc和secondfunc,我想让他们两个都在页面加载完成后得到执行,我该怎么做呢? window.onload=firstfunc; window.onload=secondfunc; 像这样逐一

把多个js函数绑定到onload时间处理函数上

js的window.onload=function();网页加载完毕时会触发一个onload事件,这个事件与window对象相关联,是让一个函数在网页加载完毕之后得到执行.但是如果有两个韩式firstfunction和secondfunction都想在页面加载时执行,如果把它们逐一绑定到onload事件上,它们当中将只有最后那个才会被执行.由此我们可以得出一个结论:每个时间处理函数只能绑定一个指令. 解决方法一: window.onload=function(){ firstfunction()

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

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

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 addLoadEvent函数说明

为了在网页加载完后,同时执行多个函数,Simon Willison写了function addLoadEvent(func): function addLoadEvent(func){  var oldOnload = window.onload;  if (typeof window.onload != 'function'){  window.onload = func;  }  else {  window.onload = function(){  oldOnload();  func(

jQuery的document ready与 onload事件——你真的思考过吗?

在进行实验和资料查询时,我遇到了几个关键问题: 1. window.onload到底是什么加载完触发? 2. body为什么会有onload事件? 3. 为什么是window.onload,而不是document.onload? 4. document ready到底是什么ready,DOM渲染完成? 5. jQuery怎么实现$(document).ready? 6. jQuery的ready,还能ready什么? 7. jQuery的document ready就一定比window.onlo

数组练习:各种数组方法的使用&amp;&amp;事件练习:封装兼容性添加、删除事件的函数&amp;&amp;星级评分系统

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-