В чем разница между нагрузкой (fn) и готовностью (fn) - PullRequest
0 голосов
/ 21 сентября 2009

... в контексте одного элемента, который мне нужно проверить?

Я никогда не сталкивался с проблемой загрузки с использованием iframe без jQuery, но теперь я думаю о загрузке из обратного вызова ajax, который содержит форму, iframe:

<form enctype="multipart/form-data" action="get.imageupload.php" id="upload_form" method="post">
    <input name="userfile" type="file" id="file" />
    <input type="submit" name="action" value="start" />
    <input type="hidden" name="id" value="<?=$id;?>" />
    <iframe id="upload_target" name="upload_target" src="" style="width:0;height:0;border:0"></iframe>
</form>

и следующие js:

$("#upload_form").submit(function() {
    $(this).attr("target","upload_target");
    $("iframe", this).load(function() {
        var ret = $("iframe", "#upload_form").contents().find("body").html();
        var data = eval("("+ret+")");
        if (data.success) alert("success"); // todo
        if (data.failure) alert("fail");    // todo
    });
    return false;
});

Я должен обработать запрос от get.imageupload.php, который возвращает данные JSON, поэтому js выглядит так. Проблема в том, что load(fn) не работает; ready(fn) вместо этого, но iframe пусто, потому что событие начинается до начала загрузки ... Я новичок в jQuery и, может быть, есть другой способ?

Есть идеи?

Thanx

1 Ответ

1 голос
/ 21 сентября 2009

Я не понимаю, почему вы бы использовали iframe вместо div или что-то подобное для загрузки всего контента.

Идея состоит в том, чтобы загрузить данные в некоторый элемент асинхронно.

Я бы посоветовал вам вставить кнопку отправки, чтобы у вас было событие, чтобы начать делать то, что вы хотите. Это легкий и простой способ сделать «AJAX Upload».

Надеюсь, это помогло.

...