方法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]