A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝雨星空 高级黑马   /  2013-10-3 22:24  /  2053 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 蓝雨星空 于 2013-10-6 00:10 编辑

         在head中定义script程序,然后使用onload方法,就是网页加载完成再执行这个程序,但是如果是  onload=程序名() 这样的方式却不能获取到table的节点,而使用         onload=function(){程序名()}   这样却又可以,有没有哪个同学知道怎么回事?

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 陈钦涛 于 2013-10-3 23:24 编辑

onload=程序名()应该写成onload=程序名,否则就是赋值形式的了,所以加载不了。
onload=function(){} 这个是匿名函数,页面加载完毕就能执行这个函数了。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
楼上正解
回复 使用道具 举报

js window.onload 加载多个函数的两种方法

网站设计中window.onload,方法在项目中经常被使用,用法如下:

  1. function fun(){
  2.                         alert("window的Onload事件被触发啦!");return;
  3. }  
  4. window.onload=fun;
复制代码

或者如下:

  1. window.onload=function(){alert("window的Onload事件被触发啦!");return;}
复制代码

1.问题:

但window.onload 不能同时加载多个函数。比如:

  1. function fun1(){

  2. alert("fun1")

  3. }

  4. function fun2(){

  5. alert("fun2")

  6. }

  7. window.onload =fun1 ;

  8. window.onload =fun2 ;
复制代码

后面会把前面的覆盖,上面代码只会输出 fun2。


2.解决方法

方法一:  

写一个总的函数调用需要触发的函数

  1. window.onload =function() { fun1();  fun2(); }
复制代码
方法二:

写一个方法

使用addLoadEvent(func)   

使用如下:

  1. function fun1(){

  2. alert("fun1")

  3. }

  4. function fun2(){

  5. alert("fun2")

  6. }

  7. function fun3(){

  8. alert("fun3")

  9. }

  10. function addLoadEvent(func) {

  11.   var oldonload = window.onload;

  12.   if (typeof window.onload != 'function') {

  13.     window.onload = func;

  14.   } else {   

  15.     window.onload = function() {

  16.       oldonload();

  17.       func();

  18.     }

  19.   }

  20. }

  21. addLoadEvent(fun1);

  22. addLoadEvent(fun2);

  23. addLoadEvent(fun3);

  24. //等价于  window.onload =function() { fun1();  fun2(); fun3() ;}
复制代码

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 赞一个!

查看全部评分

回复 使用道具 举报
如果问题已经解决,请重新编辑帖子,修改帖子的主题分类为“提问结束”{:soso_e181:}
回复 使用道具 举报
原来是在小细节上出了错,谢谢各位的热心回答,{:soso_e128:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马