Обратный вызов jquery .load никогда не вызывался в Internet Explorer - PullRequest
1 голос
/ 02 марта 2010

Я загружаю файлы через метод IFRAME, описанный здесь:

http://encosia.com/2007/02/23/ajax-file-downloads-and-iframes/

И показываю прогресс в div и скрываю этот div при завершении загрузки:

$(objIframe).load(function() {
    $("#spinner").hide();
});

Проблема в том, что эта функция обратного вызова никогда не вызывается в Internet Explorer, но она отлично работает в FireFox.Я добавил случайные значения в строку запроса, чтобы избежать кеширования.Почему обратный вызов не вызывается?

Ответы [ 2 ]

1 голос
/ 02 марта 2010

Вот моя последняя попытка.

// prepare iframe    
setTimeout(checkReadyState, 100);    

function checkReadyState() {
    if (objIframe.contentWindow.document.readState !== "complete") {
        setTimeout(checkReadyState, 100);
    }
    else {
        $("#spinner").hide();
    }
}
0 голосов
/ 02 марта 2010

Насколько я знаю, onLoad не сработает, если контент не является каким-либо HTML-документом. По крайней мере, в моих тестах это имеет тенденцию быть успешным, например, текстовые файлы, html, изображения и т. д., но не для большинства других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...