Foros del Web » Programando para Internet » Javascript »

writeln bloquea proceso

Estas en el tema de writeln bloquea proceso en el foro de Javascript en Foros del Web. Buenos días Tengo una función que abre una ventana y lanza un proceso en php que se encarga de generar un archivo de Excel, si ...
  #1 (permalink)  
Antiguo 17/01/2017, 11:29
 
Fecha de Ingreso: febrero-2011
Mensajes: 85
Antigüedad: 13 años, 2 meses
Puntos: 3
writeln bloquea proceso

Buenos días

Tengo una función que abre una ventana y lanza un proceso en php que se encarga de generar un archivo de Excel, si dejo la ventana en blanco si gnera el proceso y descarga el archivo a Excel:

ventana = window.open(aExcel.php, "Descarga", "directories=no, location=no, menubar=no, scrollbars=yes, statusbar=no, tittlebar=no, width=400, height=200");
ventana.document.title = "Descarga de Archivo a Excel";

Pero si incluyo writeln para que la ventana no se vea en blanco, ya no funciona.

ventana = window.open(queryString, "Descarga", "directories=no, location=no, menubar=no, scrollbars=yes, statusbar=no, tittlebar=no, width=400, height=200");
ventana.document.writeln('<hmtl><head><title>Carga ndo..........</title></head>');
ventana.document.writeln('<body bgcolor="white"><br><center>');
ventana.document.writeln('<font face="Arial,Helvetica" size=2 color="red"><b>Generando archivo...</b></font><br><br>');
ventana.document.writeln('<font face="Arial,Helvetica" size=2><b>Por favor espere.</b></font></center>');
ventana.document.writeln('</body>');
ventana.document.writeln('</html>');
ventana.document.title = "Descarga de Archivo a Excel";

Alguna idea.
  #2 (permalink)  
Antiguo 17/01/2017, 13:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: writeln bloquea proceso

No puedes hacer las dos cosas a la vez.

Cuando descargas un archivo, se envían encabezados al navegador para que sepa que debe iniciar la descarga, pero, si envías contenido a la página, entonces el navegador "entiende" que se trata de un código HTML e ignorará la descarga.

Aparte de que hay mejores formas de generar un HTML que usando writeln(), lo que podrías hacer es crear esa página e incluir un redireccionamiento a la descarga del archivo; el navegador mostrará el mensaje y después iniciará el proceso de descarga.

Info para redireccionamiento: https://www.w3.org/TR/WCAG20-TECHS/H76.html

Lógicamente, la URL de la redirección será la que descarga el archivo.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: funcion, proceso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:52.