posts - 4,comments - 2,trackbacks - 0

问题描述:
已有如下代码,

< body  onLoad ="MM_timelinePlay('Timeline1')" >


</ body >
即document.body.onload事件已经绑定了一个函数。
现需要onload时激活另外一个函数,如enetgetMsg(),如何处理?

解决方案:
alert(document.body.onload.toString())
弹出窗口的内容为:
function anonymous()
{
  MM_timelinePlay('Timeline1')
}
可见,当对onload绑定一个函数时,javascript自定义了一个函数,在该自定义函数体内调用了该绑定函数。
解决方法一:
重新写一函数,
function bodyOnload(){
MM_timelinePlay('Timeline1');
enetgetMsg();
}
<body onLoad="bodyOnload()">
解决方法二:
利用javascript重定义函数的功能,
newBodyload="enetgetMsg();";
if(document.body.onload)
{
eval(document.body.onload.toString().replace('anonymous()','oldBodyload()'));
document.body.onload
=new Function("oldBodyload();"+newBodyload);
}

else document.body.onload=new Function(newBodyload);
显然,第二种方法更好,因为这种方法实现时不必关心以前这个事件绑定了多少个函数,不需修改原先的代码,透明地增加一个函数。(decorate模式:透明地增加功能
posted on 2006-04-06 15:59 Steven Liu 阅读(784) 评论(2)  编辑  收藏 所属分类: 10.Web表示层基础(html/javascript/jsp/servlet)

FeedBack:
# re: javascript中一个事件激活多个函数
2006-10-06 14:32 | []
''
;';;;  回复  更多评论
  
# re: javascript中一个事件激活多个函数
2006-10-06 14:33 | []
<script>window.alert("呵呵")</script>  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: