繁体   English   中英

我怎么知道iframe已完成加载?

[英]How can I know that an iframe has finished loading?

单击按钮后,我使用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已加载吗?

我认为您需要涉及一些客户端脚本:

$("#iFrameId").load(function (){ 
    // Do something, probably an AJAX request in your case
}); 

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

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

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

您可以看到,jframe iframeloaded。

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

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM