本帖最后由 fisherboy 于 2012-07-21 23:47:06 编辑

解决方案 »

  1.   

    不明白你的意思
    因为我这个页面window.onload的时候要执行很多函数。这样会覆盖前面的window.onload=函数
    window.onload是在文档加载完毕执行函数  即便不用这个 你还是在文档加载完毕执行  不一样吗?
    完全不懂你的意思
      

  2.   

    你在body那里加一句话<body onload="你的函数名">这样试试呢
      

  3.   

    <html>
    <body><script>
    window.onload = function(){
    alert('onload');
    }var load2 = function(){
    alert('load2');
    };var load3 = function(){
    alert('load3');
    };var EventUtil = {
       //注册
       addHandler: function(element, type, handler){
         if (element.addEventListener){
           element.addEventListener(type, handler, false);
         } else if (element.attachEvent){
           element.attachEvent("on" + type, handler);
         } else {
           element["on" + type] = handler;
         }
       },
       //移除注册
       removeHandler: function(element, type, handler){
         if (element.removeEventListener){
                 element.removeEventListener(type, handler, false);
         } else if (element.detachEvent){
                 element.detachEvent("on" + type, handler);
         } else {
                 element["on" + type] = null;
         }
       }             
      };
      EventUtil.addHandler(window, 'load', load2);  
    EventUtil.addHandler(window, 'load', load3);  
    </script>
    </body>
    </html>希望这个用例可以解决你的问题。
    少年,想学好你的基础吧。推荐《javascirpt高级程序设计》
      

  4.   


    <html>
    <body><script>
    window.onload = function(){
    alert('onload');
    }var load2 = function(){
    alert('load2');
    };var load3 = function(){
    alert('load3');
    };var EventUtil = {
       //注册
       addHandler: function(element, type, handler){
         if (element.addEventListener){
           element.addEventListener(type, handler, false);
         } else if (element.attachEvent){
           element.attachEvent("on" + type, handler);
         } else {
           element["on" + type] = handler;
         }
       },
       //移除注册
       removeHandler: function(element, type, handler){
         if (element.removeEventListener){
                 element.removeEventListener(type, handler, false);
         } else if (element.detachEvent){
                 element.detachEvent("on" + type, handler);
         } else {
                 element["on" + type] = null;
         }
       }             
      };
      EventUtil.addHandler(window, 'load', load2);  
    EventUtil.addHandler(window, 'load', load3);  
    </script>
    </body>
    </html>
    希望这可以解决你的问题。
    少年,想打好你的基础吧。推荐《javascript高级程序设计》
      

  5.   

    window.onload是最好的方法
    window.onload防止覆盖的方法
    function f1()
    {
    alert("执行f1")
    }function f2()
    {
    alert("执行f2")
    }
    function f3()
    {
    alert("执行f3")
    }function addLoadEvent(func) {
      var oldonload = window.onload;
      if (typeof window.onload != 'function') {
        window.onload = func;
      } else {
        window.onload = function() {
          if (oldonload) {
            oldonload();
          }
          func();
        }
      }
    }
    addLoadEvent(f1);
    addLoadEvent(f3);
    addLoadEvent(f2);
      

  6.   

    不是onload,onload其实很很后面执行了。楼主的情况,要用 DOMContentLoadeddocument.addEventListener("DOMContentLoaded", function(){alert('loaded');}, false);
    对于不支持DOMContentLoaded的老式IE浏览器,
    用特别的hack手法,参考此文中的 "Crude test for IE"
    http://www.javascriptkit.com/dhtmltutors/domready.shtml