当前位置: 首页 > 图文教程 > 网络编程 > Javascript > window.onload和body onload

Javascript
JavaScript如何重构嵌套循环和递归
JS应用在Firebug中的扩展架构模式
提升JS性能:将递归转换为迭代
IE7浏览器下缩放图片失真问题
JavaScript对DOM进行操作的指导性原则
JavaScript有趣实例:胸罩罩杯尺寸计算器
Firefox的Firebug扩展:FireScope
Mozilla的JavaScript引擎__noSuchMethod__()方法
JavaScript+CSS制作的网站导航菜单
javascript的私有成员(private)
Javascript绘制分析曲线图
ie6使用js支持hover伪类
收集的25个下拉网页菜单特效Javascript脚本
Javascript框架的自定义事件
总结Javascript调用函数的方法
JS教程:call、apply、callee用法
JS教程:数组类型检测和集合检测
兼容FF的设为首页与收藏网站的JS代码
Javascript教程:PopUp对象
JS读写Cookie以及设置过期时间

Javascript 中的 window.onload和body onload


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 160 ::
收藏到网摘: n/a

昨晚有一段进站滤镜效果失效,
研究发现,某段JS中调用了window.onload = function()属性,同时在页面上又有body onload语句。导致window.onload事件覆盖掉body onload事件。

解决方法:

attachEvent给onload添加所需运行的函数

  1. if (document.all){
  2. window.attachEvent('onload',FuncName)
  3. }
  4. else{
  5. window.addEventListener('load',FuncName,false);
  6. }

或者把两个初始化函数再组成一个新的函数

  1.   function myinit()
  2.   {//两个函数合并下
  3.   init();
  4.   myfun();
  5.   }
  6.   window.onload=myinit;

另外,见过书上有这样的写法:

  1. function addLoadEvent(func){
  2. var oldonload=window.onload;
  3. if(typeof window.onload!='function'){
  4. window.onload=func;
  5. }else{
  6. window.onload=function(){
  7. oldonload();
  8. func();
  9. }
  10. }
  11. }
  12. //添加要加载执行的事件:
  13. addLoadEvent(aaa);
  14. addLoadEvent(bbb);