在我们当前的项目中,我们提供PDF下载,可以由用户通过他提交的HTML表单进行自定义.动态生成PDF需要几秒钟,我想将其可视化,例如通过禁用提交按钮直到下载开始.不幸的是,我找不到一种方法来检测下载何时开始*.所以我不知道何时重新启用提交按钮.
我已经尝试将IFrame指定为HTML表单的目标,希望onload
触发该事件.但是,它不是 - 可能是因为PDF使用" Content-disposition: attachment
"标头发送,并且实际上并未加载到IFrame中.
我现在能想到的唯一解决方案是将PDF生成到服务器上的临时文件,我想避免这种情况.
*)让我澄清一下:我不需要知道下载是否完成,或者即使它真的开始了.我想检测浏览器询问用户是打开还是保存文件的点.我猜这是在浏览器收到HTTP标头时发生的.