确定文件的方法是在iframe中加载的

Dmi*_*ich 5 javascript iframe download dom-events jquery-events

我遇到了一个问题:我想抓住"保存文件"对话框关闭或加载服务器上生成的csv文件(隐藏微调器以进行加载)的时刻.我知道Javascript中没有这样的事件.我绝对不想在后端为这样的小问题添加cookie,所以我想实现另一种解决方法.我看到的唯一方法是iframe,但据我所知,事件监听onload器至少在Chrome中的附件标题不起作用.我还试图对iframe状态实施一种计时器检查,但是在发送文件请求后它才能正常工作.文件在几秒钟内(10-20)在服务器上生成,因此该解决方案不符合我的目标.

我在前端使用Angular,所以任何解决方案兼容(vanilla JS,jQuery,Angular本身)对我来说都会有很大的帮助.希望得到任何.感谢你们!

gue*_*314 1

据我所知,没有任何事件会在UI 对话框打开或关闭DOM时触发。Save file

您可以尝试利用focus事件来捕获Save file对话框何时关闭并在调用具有属性集的元素window后重新获得焦点,尽管该方法并不完全可靠。.click()<a>download

// append or display spinner element here
var csvUrl = document.createElement("a"); 
csvUrl.href = url; 
csvUrl.download = "csv_filename"; 
csvUrl.click();
window.onfocus = function () { 
  document.body.removeChild(csvUrl); 
  // remove or hide spinner element here 
  window.onfocus = null; 
}
Run Code Online (Sandbox Code Playgroud)