Bib*_*bin 6 html ajax iframe download
我正在我的应用程序中下载动态文件,使用iframe模拟ajax.什么我做的是,下载请求时,我将创建一个动态的无形的iframe,并设置我的iframe和下载url.I我能够成功下载该文件的src,但要求是显示下载一旦指标下载开始,且应尽快完成在下载对话框出现up.I的通话iframe的创建完成后,显示下载的指标,这是成功的工作,并提供了另一种方法在iframe的"的onload",期待当下载对话框出现时,它将被调用.但不幸的是,这不起作用,因此即使在下载完成后,我的进度指示器仍然存在.我无法删除它.然后我开始意识到,由于响应的内容类型不是html,它将由一个单独的进程提供,这导致下载对话框,因此我的onload方法永远不会被调用.请让我知道解决方案.
Joh*_*ner 15
我创建了jQuery文件下载插件(Demo),它还修复了问题并提供了一些其他不错的功能.它基本上为您提供了"完全类似于Ajax"的文件下载体验(甚至包括回调),这通常不适用于文件下载.它与iframe的其他一些答案非常相似,但有一些我发现非常方便的很酷的功能:
这是一个使用带有promises 的插件源的简单用例演示.该演示页面还包含许多其他"更好的用户体验"示例.
$.fileDownload('some/file.pdf')
.done(function () { alert('File download a success!'); })
.fail(function () { alert('File download failed!'); });
Run Code Online (Sandbox Code Playgroud)
小智 1
当发出下载请求时,您应该在客户端中启动一个计时器,以指定的时间间隔测试 iframe 的状态:
if ( ( iframe.document && iframe.document.readyState == 'complete' )
|| iframe.contentDocument )
{
stopTimer();
closePopupDialog();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24164 次 |
| 最近记录: |