Avalados por :

Solução para eventos em frontend UI5 após chamar window.print()

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

Olá a todos!

Agradeceria qualquer ajuda com o seguinte problema:

Depois de chamar com sucesso o window.print(), os eventos no frontend do UI5 não são mais acionados.

Aqui está como chamo o 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; }

}

A visualização de impressão abre e funciona bem, consigo imprimir e fechá-la, mas depois de fechá-la, nenhum botão funciona, nenhum evento é acionado, e nenhum erro é registrado...

A versão do SAPUI5 é 1.52.17, mas talvez não seja a razão. O problema persiste mesmo após remover todo o CSS de impressão.

Alguma ideia ou alternativa?

Obrigado e cumprimentos,

Mindaugas

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

4 Respuestas

0
Cargando...

Olá Mahesh, sua solução de ocultar elementos com CSS em vez de manipular o DOM é elegante, obrigado!

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

Sim, é verdade, eu também vi.. Já experimentaste a segunda opção?

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

Olá Mahesh Kumar Palavalli ,

Obrigado. Sim, desta forma funciona de forma estável, é apenas uma pena que em uma nova aba (ou pop-up) o conteúdo impresso perca o formato SAP, os espaços entre elementos, etc.

Cumprimentos, Mindaugas

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

Olá Mindaugas Kazlauskas ,

Também enfrentei esse problema, pode ser porque estamos copiando o DOM e sobrescrevendo em algum lugar, o que pode ter causado a quebra (Deixei assim, não investiguei muito sobre isso)..

Então mudei a abordagem, pois há uma solução melhor para isso. Você pode conferir a seguinte URL do stack overflow

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

1. Primeira resposta: você precisa abrir a janela e passar o código sem sobrescrever o DOM real, como está fazendo no código anterior. <Não tentei isso>

2. Segunda resposta: Use isso. Tive que imprimir toda a página e precisava ocultar algumas coisas (barra de cabeçalho do launchpad), então usei CSS e ocultei esses elementos. O CSS só será afetado no momento da impressão, então não se preocupe ?

Saudações,

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?