0
4

2 に答える 2

2
pctaddLoadEvent(loadpapi());

このコード loadpapi(他の関数呼び出しと同様に) を呼び出し、結果を に渡しpctaddLoadEventます。

関数を呼び出さずに渡したい。

于 2013-05-13T14:57:05.277 に答える
2

イベントを から に変更しましdocument.onloadた:ここでwindow.onloadの議論を参照してください。

このdocument.onloadvswindow.onloadは複雑なテーマです。document.onloadイベントがブラウザによってまったく起動されていない可能性があります。(または、一方がウィンドウを処理し、もう一方が DOM ツリーを処理するためdocument.onload、JavaScript 関数がアクションを実行したときにイベントが既に発生している可能性があります。さらにテストを行うことで確認できます。)

また、パラメーターとして渡される関数()は、戻り値ではなく関数自体を渡したいため、 なしで渡されます。

function loadpapi(){
    alert("Hello World!");
}


function pctaddLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

pctaddLoadEvent(loadpapi);

デモ フィドルを確認してください: http://jsfiddle.net/st4kQ/

于 2013-05-13T15:10:48.663 に答える