关于onload调用多个函数的认识_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3775 | 回复: 0   主题: 关于onload调用多个函数的认识        下一篇 
jfl
注册用户
等级:少校
经验:1112
发帖:95
精华:0
注册:2012-8-10
状态:离线
发送短消息息给jfl 加好友    发送短消息息给jfl 发消息
发表于: IP:您无权察看 2012-8-24 9:13:30 | [全部帖] [楼主帖] 楼主

首先说一下onload的一个特点:只能有一个onload执行。这就要求我们不能通过onload="function()"来调用多个函数。

这里通过查找到的资料,有这种方式:

Js代码
北京联动北方科技有限公司北京联动北方科技有限公司北京联动北方科技有限公司

  1. <script> 
  2.  function t(){ 
  3.        alert("t") 
  4.  } 
  5.  function b(){ 
  6.        alert("b") 
  7.  } 
  8.  function c(){ 
  9.        alert("c") 
  10.  } 
  11.  function addLoadEvent(func) { 
  12.        var oldonload = window.onload; 
  13.       
  14.        if (typeof window.onload != 'function') { 
  15.              window.onload = func; 
  16.        } else { 
  17.        window.onload = function() { 
  18.              oldonload(); 
  19.              alert(oldonload);//这是添加的测试代码 
  20.              func(); 
  21.        } 
  22.  } 
  23.  } 
  24. addLoadEvent(t); 
  25. addLoadEvent(b); 
  26. addLoadEvent(c); 
  27. </script> 


<script>
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();
       alert(oldonload);//这是添加的测试代码
       func();
}
}
}
addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
</script>

    这里的alert(oldonload)详细记录了函数内部发生的变化:

    addLoadEvent(t)执行后会包含t()函数,addLoadEvent(b)会包含t(),b()函数,addLoadEvent(c)却包含了      t(),b(),c()三个函数。

但是到了最后,只有addLoadEvent(c)才可以通过window.onload产生执行的函数效果。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论