一尘不染

Ajax文件下载问题

ajax

我正在应用程序中下载动态文件,并使用iframe来模拟ajax。我正在做的是,当下载请求发出后,我将创建一个动态的不可见iframe,并将iframe的src设置为下载网址。我能够成功下载该文件,但要求是显示一个下载下载指示器一旦开始下载,并在下载对话框出现后立即完成。我在创建iframe后提供了回调,以显示下载指示器已成功运行,并在iframe的“
onload”上提供了另一种方法,期望出现下载对话框时,将调用它。但不幸的是,这不起作用,因此即使下载完成后,我的进度指示器仍然存在。我无法删除它。然后我意识到,由于响应的内容类型不是html,它将由一个单独的进程提供服务,这将导致下载对话框,并且因为从未调用过我的onload方法。请让我知道一个解决方案。


阅读 217

收藏
2020-07-26

共1个答案

一尘不染

发出下载请求时,您应该在客户端中启动计时器,该计时器以指定的时间间隔测试iframe的状态:

if ( ( iframe.document && iframe.document.readyState == 'complete' )
    || iframe.contentDocument )
{
    stopTimer();
    closePopupDialog();
}
2020-07-26