动态HTML加上window.onload不适用于ie

时间:2012-06-05 14:46:08

标签: jquery dom javascript-events onload

来自土耳其的问候,

我在window.onload方面遇到了一些困难,就像这样:

我正在使用jquery.magiclick.js填充div的innerHTML,并使用AJAX调用获取xml,其中包含一些img定义。该函数调用此magiclick函数驻留在document.ready中,如下所示:

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

我在另一个js中定义了一个window.onload函数。它不是必需的,但我会包含代码以使自己更清晰。它只是调用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函数。它在FF上运行得很好,但在IE上却不行。

在IE中,它调用magiclick函数来获取xml,然后调用我的onload函数,但是在onload函数执行时,还没有获取xml文件。

我坚持这一点,任何帮助都会受到严重限制。

请阅读我的帖子,这是我的第一个问题,如果我犯了任何语言或结构上的错误,请原谅我。

那么,有没有人知道我可能做错了什么?再次感谢。

1 个答案:

答案 0 :(得分:0)

AJAX是异步的,不必为你的窗口加载完成

在ajax成功回调中调用您的代码

使用jQuery AJAX速记方法$ .get()作为示例:

$.get( url, function(data){
  /* AJAX success, run  code here */
})