Estoy usando esta función para abrir una nueva pestaña con el contenido html tomado de otro archivo y luego imprimirlo. Cuando lo uso en un navegador de escritorio funciona bien. Abre una nueva pestaña con el contenido dado e imprime la página, pero cuando intento hacerlo desde mi dispositivo móvil, la pestaña se abre con su contenido y luego aparece la ventana emergente de la impresora, pero dice "Hubo un problema al imprimir la página. Inténtalo de nuevo." He intentado presionar reintentar pero no hace nada.
Aquí está la función.
function printit() { var rawFile = new XMLHttpRequest(); rawFile.open("GET", "/Doc/New Text Document.html", false); rawFile.onreadystatechange = function () { if (rawFile.readyState === 4) { if (rawFile.status === 200 || rawFile.status == 0) { var allText = rawFile.responseText; var myWindow = window.open('about:blank', '_blank'); myWindow.document.write(allText); myWindow.document.close(); myWindow.focus(); myWindow.print(); myWindow.close(); } } } rawFile.send(null); }Tuve que usar setTimeout() porque la página se cerraría antes de que se realizara la impresión y el servicio de impresión no pudo encontrar el contenido de la página.