Pregunta

Me gustaría poder manipular el DOM justo antes de que se envíe mi página para que se imprima. Internet Explorer tiene un evento en el objeto de la ventana llamado "onbeforeprint" pero esto es propietario y no es compatible con otros navegadores. ¿Es posible hacer esto a través de javascript (jQuery en particular, si es posible)?

Antes de preguntar, no puedo usar fácilmente una hoja de estilo de medios impresos para aplicar los cambios, ya que los elementos que necesito cambiar tienen estilos en línea que no se pueden anular con una hoja de estilos global. Necesito anular estos estilos en línea para fines de impresión. Debería ser posible modificar el jQuery existente si es necesario, sin embargo, eso sería un cambio más lento y riesgoso.

Saludos, Zac

¿Fue útil?

Solución

Agregar ! important después de una propiedad en su CSS le permitirá anular los estilos en línea. Por ejemplo:

<div class="test" style="color: blue;">Some Text</div>

css:

  .test {
     color: red !important;
  }

se mostrará en rojo.

Otros consejos

¿Por qué no simplemente llamar a la función print () desde otra función?

Me gusta:

function myPrint() {
  $("#myDiv").css({"border-color":"red"});
  window.print();
}

Entonces podría llamarlo desde donde lo necesite.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top