没有调用iframe onload

时间:2014-04-27 15:23:12

标签: javascript jquery iframe

我使用iframe上传图片,但iframe的javascript函数未被调用。实际上,如果iframe的名称/ id是" upload",那么在javascript函数中调用if(success)参数,但if(fail)参数不是。如果我将iframe的名称/ id更改为其他内容,则调用任一参数。名称/ ID甚至不应该影响javascript?当我第一次构建它时,只调用了if(fail)参数,而不是成功的参数。我不知道发生了什么。

我的表格:

<form id="profileForm" method="post" action="build/parsers/upload-photo.php" enctype="multipart/form-data" target="newphoto">
     <input type="hidden" name="kind" value="profile" />
     <input type="file" name="photo" id="profileSelect" onchange="uploadPhoto();" />
     <button id="profileUpload" onclick="document.getElementById('profileSelect').click(); return false;" type="submit"><i class="fa fa-camera"></i> <span>Upload Profile Picture</span></button>
</form>

uploadPhoto()函数:

function uploadPhoto() {
    $('#profileForm').submit();
    $('#photo').html("<div style='background: #dadada;'><img src='build/images/loading.gif' /></div>");
    }   

iframe:

<iframe name="newphoto" id="newphoto" onload="stopPhoto('<?php echo $username ?>');"></iframe>

stopPhoto(),即 NOT WORKING

function stopPhoto(user) {
    var iframe      = document.getElementById('newphoto');
    var innerDoc    = iframe.contentDocument || iframe.contentWindow.document;
    var fail        = innerDoc.getElementById('fail');
    var success     = innerDoc.getElementById('success');
    var file        = success.innerHTML;
    var error       = fail.innerHTML;

    if(fail != null) {
        $('#photo').html("");
        $('#alert').css('display', 'block').html(error);
        setTimeout(function () {
            $('#alert').fadeOut();
        }, 3000);
    }
    if(success != null) {
        $('#photo').html("<div style=\"background: url('users/"+user+"/profile/m/"+file+"') center no-repeat;\"></div>'");
    }

}

我的PHP文件将输出iframe中的两个div之一:

<div id="success">name.jpg</div>
<div id="fail">Error message</div>

为什么我的stopPhoto()函数无法正常工作?只调用它的一些部分,我唯一注意到的是iframe的名称/ ID确定哪些有效,哪些无效。请帮忙!

0 个答案:

没有答案