Tengo una función genérica de descarga de archivos JS en una aplicación que usa esta plantilla para enviar solicitudes HTTP POST al controlador web (ASHX) y descargar archivos:
downloadFile(url) { // other code ... // creates these iframe & form element dynamically <iframe name="X" id="X" onload="showErrorInCustomDialogBox()"> <form target="X" method="post" action="*encodedURL*" ></form> // this is called after iframe & form elements are created form.submit(); }
Al hacer clic en un botón en la aplicación, se llama a este código y se abre un cuadro de diálogo que le pide al usuario una ubicación para descargar el archivo. Quiero llamar a una función después de que el usuario haya guardado el archivo.
¿Cómo puedo lograr esta misma funcionalidad usando JS/jQuery y poder llamar a una función después de que finalice la descarga del archivo? ¿Qué opciones tengo aquí? Intenté usar XHR pero no funcionó ( vea mi otra pregunta ).
Si algo es posible usando estos iframe
+ elementos de form
que serían preferibles debido a la forma en que funcionan las cosas actualmente, cuando ocurre algún error durante la descarga, el mensaje de error se carga en el iframe
, que se muestra en el cuadro de diálogo personalizado en la aplicación.