El título es un poco confuso, pero básicamente tengo una página PHP con css aplicado, uso javascript para tomar un div (formulario) e imprimirlo usando la función de print() tal como está.
function printform(form){ var printdata = document.getElementById(form); newwin = window.open(""); newwin.document.write(printdata.outerHTML); newwin.print(); newwin.close(); }La página aparece, pero quiero usar el css de la página de PHP que parece que no funciona. Intenté usar un rel para obtener el archivo css (también probé la ruta absoluta) y retrasé la impresión, pero no funcionó (código a continuación).
function printform(form){ var printdata = document.getElementById(form); newwin = window.open(""); newwin.document.write(printdata.outerHTML); newwin.document.write('<html><head>'); newwin.document.write('<link rel="stylesheet" href="css/css.css" type="text/css" media=\\"all\\" />'); newwin.document.write('</head><body >'); newwin.document.write('</body></html>'); setTimeout(function(){newwin.print();},1000); newwin.focus(); }¿Cómo puedo hacer que el css aparezca en la otra página?
Puedo dar más contexto si es necesario.
Primero, debe asegurarse de que su contenido esté en el body :
function printform(form){ var printdata = document.getElementById(form); newwin = window.open(""); newwin.document.write('<html><head>'); newwin.document.write('<link rel="stylesheet" href="css/css.css" type="text/css" media=\\"all\\" />'); newwin.document.write('</head><body >'); newwin.document.write('</body>' + printdata.outerHTML + '</html>'); setTimeout(function(){newwin.print();},1000); newwin.focus(); } En segundo lugar, su media=\\"all\\" parece ser incorrecto, debe cambiarlo a media="all" o media="print"