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 回答