Saltar al contenido

Imprimir en Opera con javascript

Hoy me he enterado, dicen que más vale tarde que nunca, que la estándar de imprimir con javascript:

window.print();

no funciona siempre en Opera. Para que en lo haga hay que tener en cuenta que la página debe estar completamente cargada. Si esto se cumple, el siguiente ejemplo funciona:

<input type="button" value="Print this page" onClick="javascript:window.print();" ID="Button1" NAME="Button1">

El problema viene cuando antes de imprimir necesitamos hacer algo sobre el HTML ( abrimos una nueva ventana, modificarlo, etc). Tomemos este ejemplo, en el que en la función ocultar() debe hacer cosas previas a la impresión.

function imprimePagina(){
    ocultar(); // funcion que necesita ocultar información que no debe ser impresa.
    window.print();
    // resto de código;
}

Este ejemplo funciona en IE, Firefox, Chrome pero no en Opera. Para solventarlo podríamos probar con:

function imprimePagina() {
    ocultar(); // funcion que necesita ocultar información que no debe ser impresa.
    window.setTimeout(function () {
        window.print();
    }, 5);
    // resto de código;
}

Que, si no he escrito mal el ejemplo, debiera funcionar. En el caso de que abriéramos una ventana hemos de recordar lo que comentamos al principio: la página, la nueva, debe estar completamente cargada antes de intentar imprimirla en Opera. Como no controlamos en qué momento sucede esto, podemos confiar en el evento load de la ventana para imprimirla.

window.onload = function () {
    window.setTimeout(function () {
        window.print();
    }, 500);
}

Espero que a alguno le valga de algo 🙂

Referencia: http://stackoverflow.com/questions/3482428/window-print-not-working-with-opera-browser

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Jorge Hoya.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a OVH que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Esta web utiliza cookies, puedes lees sobre ellas en la política de cookies    Ver política de cookies
Privacidad