Avalados por :

Solución para eventos en frontend UI5 después de llamar a window.print()

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 10 Vistas
0
Cargando...

¡Hola a todos!

Agradecería cualquier ayuda con el siguiente problema:

Después de llamar exitosamente a window.print(), ya no se disparan más eventos en el frontend de UI5.

Así es como llamo a window.print:

onPrint: function() {

var oView = this.getView();

var oElements = oView.byId("idElements");

if (oElements){

var $domTarget = oElements.$()[0],

sTargetContent = $domTarget.innerHTML,

sOriginalContent = document.body.innerHTML;

document.body.innerHTML = sTargetContent;

window.print();

document.body.innerHTML = sOriginalContent; }

}

La vista previa de impresión se abre y funciona bien, puedo imprimir y cerrarla, pero después de cerrarla, ningún botón funciona, no se disparan eventos en absoluto, tampoco se registran errores...

La versión de SAPUI5 es 1.52.17, pero tal vez no sea la razón. El problema persiste incluso después de eliminar todo el CSS de la impresión.

¿Alguna idea o alternativa?

Gracias y saludos,

Mindaugas

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Mahesh, tu solución sobre ocultar elementos con CSS en lugar de manipular el DOM es elegante, ¡gracias!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sí, es cierto, yo también lo vi.. ¿Probaste la segunda opción?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Mahesh Kumar Palavalli ,

Gracias. Sí, de esta manera funciona de manera estable, solo es una lástima que en una nueva pestaña (o pop-up) el contenido impreso pierda el formato SAP, los espacios entre elementos, etc.

Saludos, Mindaugas

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Mindaugas Kazlauskas ,

Yo también he enfrentado este problema, podría ser porque estamos copiando el DOM y sobrescribiéndolo en algún lugar se rompió (Lo dejé allí, no investigué mucho sobre eso)..

Así que cambié el enfoque ya que hay una mejor solución para esto. Puedes revisar la siguiente URL de stack overflow

https://stackoverflow.com/questions/2255291/print-the-contents-of-a-div

1. Primera respuesta: necesitas abrir la ventana y pasar el código sin sobrescribir el DOM real como lo estás haciendo en el código anterior. <No lo intenté>

2. Segunda respuesta: Usé esto. Tuve que imprimir toda la página y necesitaba ocultar algunas cosas (barra de encabezado de launchpad), así que usé CSS y oculté esos elementos. El CSS solo se verá afectado en el momento de impresión, así que no te preocupes 🙂

Saludos,

Mahesh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?