Cuando el usuario hace clic en un hipervínculo, estoy abriendo una ventana emergente que descarga un archivo. Después de la descarga, muestra el cuadro de diálogo abrir/guardar. Quiero cerrar la ventana emergente una vez que se realiza la descarga (cuando se solicita al usuario que guarde el archivo). He intentado con el método window.close, pero no funciona ya que el contexto no es la ventana emergente sino el cuadro de diálogo abrir/guardar.Cerrar la página emergente del navegador después de descargar el archivo
Respuesta
Creo que no puede controlarlo programáticamente. Esto es algo específico del navegador donde algunos navegadores le permiten marcar una casilla de verificación para cerrar la ventana y así sucesivamente.
Los navegadores tienen la costumbre de decidir por sí mismos si desean descargar un archivo o abrirlo dentro de la ventana del navegador, dependiendo del navegador utilizado, los complementos y la configuración del servidor. Parece que abre el enlace en una nueva ventana, como si el navegador abriera el archivo en lugar de descargarlo, y luego el navegador optó por la descarga. Esto deja al usuario con un archivo descargado y una ventana en blanco sobre la que no tiene control.
Para forzarlo a descargar, debe poder establecer el encabezado Content-Type para el destino del enlace a la aplicación/descarga forzada. La forma en que haga esto dependerá de su configuración, y de si el archivo se descarga directamente (en cuyo caso será una configuración de servidor) o mediante PHP o .Net (en cuyo caso es fácil establecer programáticamente el encabezado). También asegúrese de que el hipervínculo no tenga un atributo target="_blank"
que abra el enlace en una nueva ventana.
Gracias Karl. El problema no es descargar el archivo, sino cerrar la ventana emergente después de la descarga. – Ankit
Con el encabezado Content-Type correcto, y sin target = "_ blank" (o window.open), la ventana emergente ni siquiera debería abrir en primer lugar. –
Quiero abrir la ventana emergente y mostrar un mensaje personalizado en esa ventana. Pero una vez que se completa la descarga, quiero que se cierre esa ventana. – Ankit
se puede hacer una cosa:
después de que el "código de la escritura de archivos en su servlet o puntales uso acción"
Paso 1: llaman "response.flushBuffer();" Paso 2: llamar response.sendRedirect ("close.htm")
donde close.htm es:
<html>
<script>
window.close();
</script>
</html>
El único problema es identificar si la descarga se ha completado. No creo que haya una forma posible de hacerlo. De todos modos, hay algún uso de mantener abierta la ventana emergente hasta que se complete la descarga. Simplemente puede cerrar la ventana emergente una vez que se inicia la descarga. Usando el JavaScript debajo, ¿no?
pop_up= window.open("", "PopUpName");
pop_up.document.write('POPUP TEXT');
pop_up.close();
Es la funcionalidad del navegador, puede cambiar la configuración del navegador para eso. No deberías ir por la programación. De forma predeterminada, si descargas un archivo en Firefox, pides guardarlo, pero en crome, no pregunta. Necesita cambiar la configuración de su navegador.
- 1. Selenium WebDriver cómo cerrar el navegador emergente
- 2. Autenticación/Eliminación de cookie de sesión después del navegador cerrar
- 3. ASP.Net Descargar archivo en el navegador del cliente
- 4. Refrescando ventana principal después de cerrar ventana emergente
- 5. necesito actualizar la página web después de hacer clic en cerrar ventana emergente
- 6. Cerrar ventana emergente de OAuth 2.0 después de redirigir
- 7. Cómo cerrar la pestaña del navegador después de enviar un formulario?
- 8. La mejor manera de detectar el cierre/navegación del navegador a otra página y cerrar sesión
- 9. Fugas de memoria Javascript después de descargar una página web
- 10. Estado expandido/colapsado no guardado después de cerrar el archivo
- 11. Cómo cerrar Extensor emergente modal desde el lado del servidor
- 12. Página de fondo de extensión de Chrome Mostrar página emergente
- 13. Comprobar la caché del navegador para un archivo js
- 14. Forzar navegador para descargar el archivo en lugar de abrirlo
- 15. CDI/Weld: ¿cómo gestionar la actualización de la página del navegador después de finalizar la conversación?
- 16. Cómo forzar al navegador a descargar el archivo?
- 17. Cerrar programáticamente la página aspx del código detrás de
- 18. GWT Ventana emergente en la nueva ventana del navegador
- 19. cómo insertar la página actual en el historial del navegador
- 20. Usar el botón Atrás del navegador después de que SignOut() permita el acceso a la página segura (ASP.NET MVC)
- 21. Prevenir el botón Atrás después de cerrar sesión
- 22. Descargar el archivo pdf de la wikipedia
- 23. JavaScript PopUp - Destino del enlace de emergente = otra ventana del navegador
- 24. Griales descargar el archivo
- 25. Detectar navegador Cerrar en Asp.net
- 26. Página AJAX Descargar progreso
- 27. python cerrar el descriptor del archivo pregunta
- 28. Extensión de Chrome: cierra la página de fondo después de cerrar Chrome
- 29. Borrar cookies en el navegador cerrar
- 30. ¿Cómo cerrar una ventana emergente de Liferay.util.openWindow?
Sí. Algunos usuarios prefieren que esa ventana se quede, por ejemplo. para que puedan ejecutar 'Ejecutar' desde allí después de la descarga; así como lo prefieran y no intentes interferir con eso (no es que puedas). A todos los que no les guste ese comportamiento, desmarcarán la casilla para que desaparezca. – bobince