1

ページが読み込まれたときに実行されるmodernizr.jsを使用するページがあります。これを追加する前に、ページが読み込まれたときに読み込まれた時刻を表示するために単純なjsクロックスクリプトを実行していましたが、両方を同時にページに追加すると、どちらか一方が機能しなくなります。

私はまだjavascriptにかなり慣れておらず、ルールを理解し始めています(独学)。ロード時に2つのスクリプトを実行することは可能ですか?その場合、どのように実行しますか?または、私は間違った木を吠えていますか?もしそうなら、私のコードに何か問題がありますか?

これは私が持っていたものです...

<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は機能しません。

ありがとう

4

3 に答える 3

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>
于 2013-02-04T16:29:59.010 に答える
2

に直接割り当てるのではなく、を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/

于 2013-02-04T16:30:25.303 に答える
1

これを使う

function myFunctions() {
  function1();
  function2();
}
window.onload = myFunctions;
于 2013-02-04T16:31:19.390 に答える