分享

向window.load添加多个函数

 顺溜的书架 2013-03-31
2007-09-26 10:28

向window.load添加多个函数

方法1.

很多种方法,总的来说有两种类型:

1 用DOM提供的绑定事件的方法来作,比如:
[html]
<script type="text/javascript">
function attach(o,e,f){
   if (document.attachEvent)
     o.attachEvent("on"+e,f);
   else if (document.addEventListener)
     o.addEventListener(e,f);
}
attach(window,"load",function(){alert('111')})
attach(window,"load",function(){alert('222')})
</script>
[/html]

不过这种方式的绑定有点小问题……因为你没法确认顺序……

还有一种,就是直接将原来的方法作为另一个函数来引用,如:
[html]
<script type="text/javascript">
function myload(f){
   if (window.onload){
     var o   = window.onload ;
     window.onload = function(){f();o();}//顺序可调
   }
   else
     window.onload   = f;
}
myload(function(){alert('111')})
myload(function(){alert('222')})
</script>
[/html]

方法2.

[code]
window.$asfman=new Array();
window.$load=function(func,args) {
    window.$asfman[window.$asfman.length]=[func,(args)?args:""];
   }
window.onload=function() {
   for(var i=0;i<window.$asfman.length;i++) {
    var func=window.$asfman[i][0];
    func(window.$asfman[i][1];
     }
   }
[/code]
[html]
<script>
window.$asfman=new Array();
window.$load=function(func,args) {
    window.$asfman[window.$asfman.length]=[func,(args)?args:""];
   }
window.onload=function() {
   for(var i=0;i<window.$asfman.length;i++) {
    var func=window.$asfman[i][0];
    func(window.$asfman[i][1]);
     }
   }
function a(x){alert(x)}
function b(y){alert(y)}
window.$load(a,"a");
window.$load(b,"b");
</script>
[/html]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多