我有一个简单的HTML / JS:
<form method="post" enctype="multipart/form-data" action="Service.ashx" target="download" id="uploadForm">
<label for="x">Select file:</label> <input type="file" name="x" id="x" /> <button type="submit">Generate</button>
</form>
<iframe style="display: none" name="download" id="frmDownload"></iframe>
<script type="text/javascript">
document.getElementById("frmDownload").onload = function () {
alert("Yay!");
}
</script>
简而言之,有一个小<form>
提交隐藏的<iframe>
。成功后,Service.ashx
将返回文件下载:
content-type: application/zip
content-disposition: attachment; filename="result.zip"
此过程可能需要一段时间(一两分钟),因此我想向用户显示“请稍候,仍在处理”。当过程完成并且文件可供下载时,我想显示“All done!”。不幸的是onload
脚本似乎没有被调用(我在Windows上使用最新的Chrome)。有什么建议怎么做?
已添加: A-ha!这是一个Chrome问题!并且专门寻找Chrome,看起来已经被覆盖了:Which JS event is fired when Chrome gets the download file?
嘿,我第一次接近投票给自己的话题! :)