我可以运行多个javascript onload吗?

时间:2013-02-04 16:23:05

标签: javascript

我有一个页面使用了在页面加载时运行的modernizr.js。在我添加之前,我有一个简单的js时钟脚本运行,以显示加载页面时也加载的时间,但是,因为同时将它们两个添加到页面使一个或另一个停止工作。

我仍然是javascript的新手,并且正在掌握规则(自学)。是否有可能在负载下运行两个脚本,如果是这样的话?或者,我是在咆哮错误的树,如果是,我的代码有问题吗?

这就是我的......

<script>
window.onload = function() {
   if(window.FileReader && Modernizr.draganddrop){
      window.location = "http://www.dentaldigs.co.uk/image_upload.php"

   }
};
</script>

<script>
      // add a zero in front of numbers<10
      function checkTime(i)
      {
      if (i<10)
        {
          i="0" + i;
        }
      return i;
      }

      function clock()
      {
      var today=new Date();
      var h=today.getHours();
      var m=today.getMinutes();
      var s=today.getSeconds();
      m=checkTime(m);
      s=checkTime(s);
      document.getElementById('clock_div').innerHTML=h+":"+m+":"+s;
      t=setTimeout(function(){clock()},500);
      }  

</script>

<body onLoad="clock()">
</body>

使用时钟脚本,modernizr.js不起作用。

由于

3 个答案:

答案 0 :(得分:2)

为什么不在调用Modernizr脚本后立即将clock();添加到window.onload

<script>
window.onload = function() {
   // loading modernizr
   if(window.FileReader && Modernizr.draganddrop){
      window.location = "http://www.dentaldigs.co.uk/image_upload.php"
   }
   // calling your clock script
   clock();
};
</script>
<body>
   ...
</body>

答案 1 :(得分:2)

您应该使用window.onload绑定事件,而不是直接分配给addEventListener。这样你就可以分配多个功能。

window.addEventListener('load', function(){
    console.log('first onload');
});

window.addEventListener('load', function(){
    console.log('second onload');
});

DEMO:http://jsfiddle.net/jjqCX/

更新:如果您使用的是IE&lt; 9,您需要使用attachEvent

function loaded = function(){
    console.log('first onload');
}

function loaded2 = function(){
    console.log('second onload');
}

if (window.addEventListener) {
    window.addEventListener('load', loaded, false); 
    window.addEventListener('load', loaded2, false); 
}
else if (window.attachEvent)  {
    window.attachEvent('onload', loaded);
    window.attachEvent('onload', loaded2);
}

DEMO:http://jsfiddle.net/jjqCX/1/

答案 2 :(得分:1)

使用这个

function myFunctions() {
  function1();
  function2();
}
window.onload = myFunctions;