Загрузка файла iframe в jQuery - запуск или неудача - PullRequest
0 голосов
/ 04 октября 2010

У меня есть этот javascript, который загружает выбранный файл через iframe.Мне нужно иметь возможность определить из iframe, был ли файл успешно загружен или нет.Проблема в том, что загрузка файла может занять 3 секунды или 30 секунд.Лучший метод, который я могу придумать для запуска функции, когда загрузка завершается изнутри iframe .... как бы я нацелился на главное окно изнутри дочернего iframe?

                if (file === false) {
                    var newEl = that.reset(this);
                    //fix listener
                    triggerNotification('x', 'Unable to upload file, file type not accepted');
                } else {
                    var id = Math.floor(Math.random()*101);
                    var form = jQuery(this).hide().after("<div class='upload'><div class='file'>"+file+"</div><div class='status'><img src='/image/progress-bar.gif'/></div></div><iframe id='"+id+"' name='"+id+"' src='about:blank' width='0' height='0' style='display: block;'></iframe>").parents('form');
                    form.attr('target', id).submit();
                    console.log(jQuery('iframe', form));
                    console.log(jQuery('iframe', form).contents());
                    console.log(jQuery('iframe', form).contents().find('body'));
                    console.log(jQuery('iframe', form).contents().find('body').html());

                    jQuery('input[type="button"]', form.parents('.popup-panel')).show();

                    triggerNotification('check', 'File has been uploaded');

                    //form.replaceWith("<a href='/image/icons/accept.png' target='_blank'><img src='/image/icons/accept.png' style='max-width: 120px;'/></a><br/><span class='faded'>(Click to view actual size)</span>");
                }

1 Ответ

0 голосов
/ 04 октября 2010

Решением было запустить функцию JS на странице через iframe, используя parent.jQuery... вместо window.jQuery...

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