Estoy imprimiendo datos desde una nueva ventana, después de lo cual quiero cerrar la ventana. Si cierro la ventana de inmediato, entonces no tiene tiempo suficiente para que se ejecute la función javascript que escribe datos en el documento. Estoy usando setTimeout para imitar este comportamiento. Sin embargo, me pregunto si hay una forma nativa de hacer esto.
Por razones obvias, establecer el tiempo de espera no es una solución óptima, ya que muchas cosas podrían bloquear la ejecución, etc., tal vez una devolución de llamada de la función de print sería suficiente, aunque los documentos no mencionan nada al respecto. Aquí está mi código:
nw.Window.open('print.html', {show: false, new_instance: false}, function(new_win) { new_win.on('loaded', function() { this.print({autoprint: true, headerFooterEnabled: false}); }); });Y en el print.html:
var div = document.getElementById("orderBill"); div.innerHTML = '<h1>Header</h1><p>Some text</p>'; var win = nw.Window.get(); setTimeout(function(){ win.close(); }, 5000);¿Mover window.close() al evento onafterprint ?
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onafterprint