Foros del Web » Programando para Internet » Javascript »

window.close() después de window.print()

Estas en el tema de window.close() después de window.print() en el foro de Javascript en Foros del Web. Hola, para imprimir una página abro una nueva ventana y en el <body> tengo onLoad="javascript :window.print();window.close();" si le pongo solo onLoad="javascript :window.print();" se abre el ...
  #1 (permalink)  
Antiguo 07/04/2003, 15:51
 
Fecha de Ingreso: abril-2002
Mensajes: 47
Antigüedad: 22 años, 7 meses
Puntos: 0
window.close() después de window.print()

Hola,

para imprimir una página abro una nueva ventana y en el <body> tengo

onLoad="javascript:window.print();window.close();"

si le pongo solo

onLoad="javascript:window.print();"

se abre el diálogo de impresión pero me deja la ventana abierta. El problema surge que cuando le pongo el window.close() no le da tiempo a imprimir que ya ha cerrado la ventana.

Probé algo que leí buscando por el foro sobre el evento "onafterprint" pero no me funcionó.

¿Alguien sabe cómo hacer que no se cierra la ventana hasta que se haya mandado a la impresora la página a imprimir?

Gracias.
  #2 (permalink)  
Antiguo 08/04/2003, 10:57
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 7 meses
Puntos: 1
mmm

Podrías dejar imprimir la hojaa y cuando ésta finalizara de imprimir cerrarla, ¿no?

Yo tengo una idea, que es hacer cerrar la ventana despúes de X segundos con esta función:

~~~~~~~~~~~~~~~~~~~~~~
<script language="javascript">
window.setTimeout("window.close('_self','','')",50 00)
</script>~
~~~~~~~~~~~~~~~~~~~~~~

Siendo 5000 = 5 segundos, ahí juegas tú.

Después decirte que también puedes jugar con el factor de abrir la ventana detrás de la padre (abrirla y ocultarla detrás de la opener) y transcurridos los segundos se cierra sóla... y el usuario ha imprimido la página abriendo un popup sin darse cuenta.

Esto lo consigues haciendo un Onfocus.windows.opener (desde el popup).


Saludos y Suerte!!
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #3 (permalink)  
Antiguo 08/04/2003, 11:02
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Supongo que basta con esperar a que la página haya llegado a la cola de impresión, pero ¿como se hace para saber cuanto tiempo necesitarán los usuarios para que la página llegue a la cola de impresión, teniendo en cuenta que tendrán sistemas operativos distintos en computadoras de distintas características?
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 08/04/2003, 11:04
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 7 meses
Puntos: 1
En eso tienes razón, por eso el tiempo en segundos mejor dejarlo prolongado, total... si la ventana esta oculta detrás, dejala un buen rato y ya se cerrará sola .


Es que otra solución no se ahora .

Saludos
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #5 (permalink)  
Antiguo 08/04/2003, 17:05
 
Fecha de Ingreso: abril-2002
Mensajes: 47
Antigüedad: 22 años, 7 meses
Puntos: 0
Gracias a los dos.

Esto es lo que planteaba. NO se cómo capturar el evento de fin de impresión o que los datos ya han sido enviados a la impresora.

Lo del TimeOut también lo habia pensado pero no me gusta mucho la idea, és muy difícil poner un tiempo adecuado, todo va mucho en función del usuario.

Por los foros encontré que exisitia "onafterprint" pero no funciona.

Si alguien tiene alguna otra sugerencia será muy bien recibida.

Gracias.
  #6 (permalink)  
Antiguo 08/04/2003, 18:27
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 7 meses
Puntos: 1
Encontré esto por internet:

~~~~~~~~~~~~~~~~~~~~~~

ONBEFOREPRINT = Esté ira chocado en la etiqueta BODY o FRAMESET. Adecua el aspecto de la página a el papel que se este usando, está modificación se realiza por medio de un Script. Inclusive, puede llegar a suprimir ciertas cosas de nuestra pantalla para que salga la impresión de buena calidad. En caso de tener una foto en pantalla, este la suprime para ahorrar tinta, pero esto funciona soo en I.E 5.0 y no en versiones anteriores

ONAFTERPRINT = Esté es un complemento del anterior, después de impresa la pantalla, este comando restablecerá los parámetros originales de pantalla.

~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ambos se utilizan en los tags del BODY, no es mucho pero seguiré indagando en posible ayuda para tí.

Salu2!
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #7 (permalink)  
Antiguo 09/04/2003, 12:00
 
Fecha de Ingreso: abril-2002
Mensajes: 47
Antigüedad: 22 años, 7 meses
Puntos: 0
Gracias, probaré a ver que tal. De todos modos también continuaré investigando...
  #8 (permalink)  
Antiguo 12/02/2004, 14:44
 
Fecha de Ingreso: octubre-2003
Ubicación: ***
Mensajes: 152
Antigüedad: 21 años
Puntos: 0
mu tarde pero wueno por si otro lo quiere :)

<script language="javascript">
<!--
function printThis() {
window.print();
self.close();
}
//-->
</script>


<body onLoad="printThis();">
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 18:28.