Solo lectura

Google Chrome - Foro de ayuda

Esta página web es un archivo de los hilos antiguos de los foros de Google. Más información

Problemas con javascript

Anna Arostegui
9/09/13 1:25
Mi problema es que en html, tenemos las funciones self.print();self.close();. La primera vez funciona correctamente, pero la segunda vez que le damos al botón que llama a esta función, se abre la ventana y se cierra directamente.
Con otros navegadores me funciona correctamente, que puede estar pasando?
Gracias.

Respuestas (7)

avm99963
9/09/13 5:41
¡Hola Anna!

Primero de todo, ¡bienvenida al Foro de Búsqueda de Google!

¿Qué navegador estás usando? ¿Google Chrome? Si es así, me gustaría que algún Rising Star/Colaborador Principal moviera la pregunta al Foro de Chrome :-)

Suponiendo que estás usando Chrome, y la última versión, borra las cookies y vacía la caché[1]. ¿Te funciona en modo incógnito[2]? Prueba si funciona en esta simple página web que he desarrollado.

Saludos :-)


Anna Arostegui
9/09/13 6:09
Buenas,

sí estoy usando Chrome.

Siguiendo tus instrucciones sigue sin funcionar. La página web que me has pasado en principio funciona correctamente.

Te mando parte del código a ver si así podemos encontrar una solución.

Primero se le da a un botón que hace lo siguiente:

win=window.open("","impr",'width=500,height=770,top=25,left=25,status=yes,scrollbars=yes,resizable=yes');

Dentro del codigo que abre win hay:
 
<body onLoad="self.focus();self.print();self.close();" >

Win se abre la primera vez bien y hasta que no se imprime no se cierra la ventana, a partir de la segunda vez que se abre, se abre y se cierra directamente.

Saludos

avm99963
9/09/13 6:42
¡Hola de nuevo Anna!

¿Podrías ponerme un poco más del código? No entiendo cómo llega el "<body onLoad="self.focus();self.print();self.close();">" allí sólo ejecutando el código "win=window.open("","impr",'width=500,height=770,top=25,left=25,status=yes,scrollbars=yes,resizable=yes');".

¿Y si pruebas con el siguiente código que he comprobado que funciona con todos los navegadores?

<!DOCTYPE html>
<html>
<head>
<script>
function printit()
{
self.print();
    self.close();
}
</script>
<style>
@media print
{
#boton_imprimir
{
display:none; //Este código CSS hace que el botón "Imprime" no se muestre en la impresión
}
}
</style>
</head>
<body>
                <p>Texto</p>
<button id="boton_imprimir" onclick="printit()">Imprime</button>
</body>
</html>

(Puedes ver un ejemplo en http://jsfiddle.net/avm99963/r2WDz/1/)

Saludos :-)
Anna Arostegui
9/09/13 7:02
Hola,

function imprimir(){

win=window.open("","impr",'width=500,height=770,top=25,left=25,status=yes,scrollbars=yes,resizable=yes');
frm.action.value="AB_cliente_imprimir";
frm.submit();

}

esta función se llama a través de un botón de un html, el frm.action.value es el nombre de la función que carga el html siguiente:

<html>
<head>
<title>{_NOMBRE_EMPRESA}</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="{_GESTION_ROOT_URL_NO_SCRIPT}/templates/style_gestion.css?v={_VERSION}" rel="stylesheet" type="text/css">
</head>
<body onLoad="self.focus();self.print();self.close();"  bgcolor="#FFFFFF" text="#000000" leftmargin="2" topmargin="2">
<table>
//aqui está el contenido a imprimir
</table>
</body>
</html>

gracias.

saludos.
Rubén R/R2
9/09/13 7:39
Hola Anna Arostegui y avm99963

La pregunta se encuentra en el foro de Búsqueda Web pero trata sobre un asunto ajeno al foro.

Cabe hacer mención que Google cuenta con un sitio especial para desarrolladores: http://developers.google.com. En dicho sitio encontraran los foros específicos sobre temas de desarrollo.

¡Saludos!
Rubén
avm99963
9/09/13 7:40
Lo que he hecho para que funcione en Chrome es en vez de poner el código Javascript en el atributo "onLoad" del body, añadir lo siguiente a la función imprimir:

mywindow.focus();mywindow.print();mywindow.close();

Saludos :-)
avm99963
9/09/13 7:42
Gracias por la información Rubén :-)

En concreto https://developers.google.com/chrome/ tiene recursos de desarrolladores de páginas web para Google Chrome.

Saludos :-)