1

单击按钮时,我使用 iframe 从我的 Web 应用程序下载文件。

这是我的代码:

    iframe = document.createElement("iframe");
    iframe.src = "Report/ExportFile.aspx";
    iframe.style.display = "none";
    document.body.appendChild(iframe);

我想在父页面(包含 iframe 的页面)中调用一个函数来停止我的加载动画。

我需要知道 iframe 何时完成加载,并弹出保存/打开对话框以停止它。

我试图在 iframe.onload = function() { //close } 中停止动画,但问题是在 iframe 页面加载中我有以下代码:

    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.AddHeader("content-disposition", "attachment;  filename=ExcelDemo.xlsx");
    Response.BinaryWrite(pck.GetAsByteArray());
    Response.Flush();
    Response.End(); 

所以页面执行终止。

有谁有解决方案我怎么知道 iframe 已经加载?

4

3 回答 3

1

我认为您需要参与一些客户端脚本:

$("#iFrameId").load(function (){ 
    // Do something, probably an AJAX request in your case
}); 
于 2012-06-11T12:58:08.013 回答
0

一种解决方案是在 iframe javascript 中有一个方法,您可以在 iframe 完成加载时调用该方法。在此方法内部,调用父页面上的方法:

var iFrameLoaded = function () {
    parent.stopLoadingAnimation();
};

要在 iframe 页面加载代码后继续加载页面,请删除 Response.End() 以便继续执行。

于 2012-06-11T16:00:48.763 回答
-2

你可以看到这个,jquery iframeloaded。

function iframeLoaded() { alert("Iframe loaded!"); }

祝你好运!

于 2012-06-11T13:23:43.800 回答