Прочитайте содержание iframe после отправки формы в iframe - PullRequest
0 голосов
/ 22 марта 2012

я пытаюсь загрузить файл через iframe.

я создаю iframe следующим образом:

    <iframe frameBorder="0" height="50px" width="100%" id="iframe-upload"/>

после этого я добавляю iframe в DOM:

$('#iframe-upload').contents().find('body').append('<form method="post" action="admin/images/upload" enctype="multipart/form-data" id="form-upload-image"><input name="data[image]" type="file" id="image-upload" /><input type="button" id="btn"></form>').appendTo("#formupload");

для отправки я действую так:

$("#iframe-upload").contents().find('#btn').bind('click', function(){
    $("#iframe-upload").contents().find('#form-upload-image').submit()

})

сейчас я не могу понять, КОГДА мне нужно позвонить:

console.log($("#iframe-upload").contents());

, чтобы получить контент.

Проблема заключается в синхронизации между моим запросом содержимого () и обновлением iframe, на самом деле сначала идет jquery, а ПОСЛЕ обновления iframe.Таким образом, я не могу достичь реального ответа.

ps Я пытался выполнить live (), on (), change () для содержимого кадра, но все эти события запускаются только один раз (когда я выбираюфайл перед отправкой формы) и так бесполезны

спасибо в совете

Ответы [ 2 ]

0 голосов
/ 17 сентября 2013

Проверьте содержимое после загрузки iframe.

$('#iframe').load(function () {
    $(this).contents();
});
0 голосов
/ 22 марта 2012

Вы должны быть в состоянии извлечь содержимое из iframe перед отправкой формы.Чтобы добиться этого, вы можете привязать функцию к событию onSubmit формы.

$('#form-upload-image').bind('submit', function (event) {
    event.preventDefault();

    console.log($("#iframe-upload").contents());

    this.submit();
});

или, возможно,

$('#form-upload-image').submit( function () {
    console.log($("#iframe-upload").contents());
});

Это просто не в моей голове.

...