0

私はいくつかの問題を抱えてwindow.onloadおり、それは次のようなものです:

jquery.magiclick.jsAJAX呼び出しを使用して、いくつかのimg定義を持つxmlを使用およびフェッチして、divのinnerHTMLにデータを入力しています。この関数を呼び出すmagiclick関数は、次のように document.ready に存在します。

$().ready(function () {
    loginBanner();
});

そしてwindow.onload、別のjsで関数を定義しました。必要ありませんが、わかりやすくするためにコードを含めます。window.onload以前に定義された関数があればそれを呼び出すだけで、その関数がパラメーターとして渡されます。ここに行きます:

    function addLoadEvent(func) {
      var oldonload = window.onload;
      if (typeof window.onload != 'function') {
        window.document.body.onload = function(){
            alert("onLoad-1");
            func();
        };
      } else {
            window.document.body.onload = function() {
                alert("onLoad-1");
                if (oldonload) {
                    oldonload();
                }
                func();
            };
      }
    }

関数パラメーターを使用して、ページの下部でこの関数を呼び出しています。

ここでの私の期待は、ドキュメントの準備ができた後に img 定義を取得することです。定義には img 参照が含まれているため、画像データを取得してからonload関数を実行します。Firefox では問題なく動作しますが、IE では動作しません。

IEではmagiclick、xmlをフェッチする関数を呼び出してから関数を呼び出していonloadますが、onload関数の実行時にxmlファイルがフェッチされていません。

私はそれで立ち往生しており、どんな助けも深く感謝します。

それで、誰かが私が間違っているかもしれないことについて考えを持っていますか?

4

1 に答える 1

0

AJAX は非同期であり、ウィンドウの読み込みを開始するために完了する必要はありません

ajax 成功コールバック内でコードを呼び出す

例として jQuery AJAX 短縮メソッド $.get() を使用します。

$.get( url, function(data){
  /* AJAX success, run  code here */
})
于 2012-06-05T15:42:04.623 に答える