js window.onload 加载多个函数和追加函数详解

 更新时间:2014年01月08日 09:09:06   转载 作者:  
本篇文章主要是对js window.onload 加载多个函数和追加函数进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

平时做项目 经常需要使用window.onload,

用法如下:

function func(){alert("this is window onload event!");return;}

window.onload=func;

或者如下:

window.onload=function(){alert("this is window onload event!");return;}

但window.onload 不能同时加载多个函数。

比如:

function t(){
alert("t")
}
function b(){
alert("b")
}
window.onload =t ;
window.onload =b ;

后面会把前面的覆盖,上面代码只会输出 b。

此时可用如下方法解决:
window.onload =function() { t();  b(); }

另一种解决方法如下:

复制代码 代码如下:

 function addLoadEvent(func) {
  var oldonload = window.onload;//得到上一个onload事件的函数
  if (typeof window.onload != 'function') {//判断类型是否为'function',注意typeof返回的是字符串
    window.onload = func;
  } else { 
    window.onload = function() {
      oldonload();//调用之前覆盖的onload事件的函数---->由于我对js了解不多,这里我暂时理解为通过覆盖onload事件的函数来实现加载多个函数
      func();//调用当前事件函数
    }
  }
}

//(完整示例)使用如下:

function t(){
alert("t")
}
function b(){
alert("b")
}
function c(){
alert("c")
}
 function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else { 
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
//等价于  window.onload =function() { t();  b(); c() ;}


个人以为直接使用隐式函数(如:window.onload =function() { t();  b(); c() ;})更快捷,当然使用 addLoadEvent 更professional,各取所好吧!

JS window.onload追加函数:

复制代码 代码如下:

<script>
if(window.attachEvent)//IE:如果浏览器中存在window.attachEvent函数则使用window.attachEvent函数,判断是否是IE还可以使用:if (document.all){//..}
window.attachEvent("onload",function() {alert("add method");});
else  //FireFox
window.addEventListener("load",function() {alert("add method");},true);
</script>

运行,js中alert弹出消息,问题解决。

============相关资料================

attachEvent   将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。

Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。

相关文章

  • js实现3D图片环展示效果

    js实现3D图片环展示效果

    本文主要介绍了js实现3D图片环展示效果的实例,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • IE 下Enter提交表单存在重复提交问题的解决方法

    IE 下Enter提交表单存在重复提交问题的解决方法

    这篇文章主要介绍了IE 下Enter提交表单存在重复提交问题的解决方法,需要的朋友可以参考下
    2014-05-05
  • JS区分Object与Aarry的六种方法总结

    JS区分Object与Aarry的六种方法总结

    下面小编就为大家带来一篇JS区分Object与Aarry的六种方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • JS判断数组四种实现方法详解

    JS判断数组四种实现方法详解

    这篇文章主要介绍了JS判断数组四种实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • js 对象使用的小技巧实例分析

    js 对象使用的小技巧实例分析

    这篇文章主要介绍了js 对象使用的小技巧,结合实例形式分析了JavaScript对象的遍历、查找、事件监听等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • 使用JS取得焦点(focus)元素代码

    使用JS取得焦点(focus)元素代码

    这篇文章主要介绍了使用JS取得焦点(focus)元素的具体实现,需要的朋友可以参考下
    2014-03-03
  • 最精简的JavaScript实现鼠标拖动效果的方法

    最精简的JavaScript实现鼠标拖动效果的方法

    这篇文章主要介绍了最精简的JavaScript实现鼠标拖动效果的方法,可实现javascript控制鼠标拖动div层效果的方法,需要的朋友可以参考下
    2015-05-05
  • javascript实现的HashMap类代码

    javascript实现的HashMap类代码

    这篇文章主要介绍了javascript实现的HashMap类代码,实现了添加、获取、删除、查询key和value功能,需要的朋友可以参考下
    2014-06-06
  • 常用的 JS 排序算法 整理版

    常用的 JS 排序算法 整理版

    关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较
    2018-04-04
  • Bootstrap3下拉菜单的实现

    Bootstrap3下拉菜单的实现

    这篇文章主要介绍了Bootstrap3下拉菜单的实现方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-02-02

最新评论