繁体   English   中英

我可以运行多个JavaScript onload吗?

[英]Can I run more than one javascript onload?

我有一个使用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无法正常工作。

谢谢

为什么不简单地添加clock(); 调用Modernizr脚本后立即转到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>

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

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

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

演示: http : //jsfiddle.net/jjqCX/

更新 :如果您使用的是IE <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);
}

演示: http : //jsfiddle.net/jjqCX/1/

用这个

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM