ASP.NET在Response.Write上完成iframe

时间:2014-12-08 19:47:01

标签: javascript asp.net iframe

我在ASP.NET中开发一个应用程序,用于创建报告并将其下载到客户端。我是使用发布到服务器的iframe执行此操作的。操作完成后,使用Response.Write()将报告下载到客户端。

与此同时,在客户端上,我正在显示一个GIF,表明服务器正在生成报告。成功创建报告并写完客户端后,我想相应更新iframe,并隐藏GIF。

有没有办法确定iframe的父页面中的response.write()是否成功?

父:

<iframe id="iframe1" src="import-upload.html" width="100%" height="300" onload="loadFrame()" frameborder="0">

function redirect(type) {
        iframe.getElementById('inputType').value = list.options[list.selectedIndex].value;
        iframe.getElementById('inputAction').value = type;

        document.getElementById("divOptionsContainer").style.display = "none";
        document.getElementById("imgLoadingGif").style.display = "";

        iframe.getElementById('frmUpload').submit();
    }

Iframe来源:

<div align="center">
    <form id="frmUpload" action="AjaxFileHandler.aspx" method="POST" enctype="multipart/form-data" target="_self" style="margin-bottom:20px;">
        <input id="fileupload" type="file" name="files[]" />
        <input type="hidden" id="inputAction" name="action"/>
        <input type="hidden" id="inputType" name="type"/>
    </form>

    <button id="btnReport" type="button" onclick="parent.redirect('Report')" style="">Report</button>
    <button id="btnUpload" type="button" onclick="parent.redirect('Import')" style="">Import</button>
</div>

这是我的第一篇文章。如果需要更多信息,请告诉我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以收听iframe的onload事件:

function redirect(type) {
    iframe.getElementById('inputType').value = list.options[list.selectedIndex].value;
    iframe.getElementById('inputAction').value = type;

    document.getElementById("divOptionsContainer").style.display = "none";
    document.getElementById("imgLoadingGif").style.display = "";

    iframe.onload = function() {
        document.getElementById("divOptionsContainer").style.display = "";
        document.getElementById("imgLoadingGif").style.display = "none";
    }

    iframe.getElementById('frmUpload').submit();
}