导航

Javascript中触发多个事件(转)

Posted on 2007-02-23 15:24  taoeternal  阅读(1527)  评论(2编辑  收藏  举报

我们通常会在页面下载完毕时运行一些脚本,常见的用法是 window.onload=myFunctions;
但当我们添加新的 window.onload 事件时如添加 window.onload=my2Functions 到脚本执行时就会发现只运行了 my2Functions 这个函数.使用木木鱼这个函数可以轻松解决这个问题,只需要把函数复制到你的页面内。
在运行第二个或者第三四五六个相同事件触发的时候,不要用 window.onload=my2Functions 改为用 window.onload=addSenToEventHandle(window.onload,my2Functions);

function addSenToEventHandle(EHObj,insSen){ /*插入语句到已有事件句柄中,返回一个新的Function对象*/
var preSen;
if (EHObj!=null){
preSen=EHObj.toString();
}else {
preSen="";
}
var reg=/^(function +[\w|\$|\.]+ *\([\w|\$|\,|\.]*\) *\{)([\W|\w]*)(\})$/;
var preBody=preSen.replace(reg,"$2");
var newFunObj=new Function(preBody+insSen);
return newFunObj;
}
/*for example:window.onload=addSenToEventHandle(window.onload,"alert('天呐');");*/

(今天刚发现,竟然没把函数贴上来,补上)