Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/11/2015, 13:35
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: funcion para imprimir un div conservando los estilos css

Mediante una petición asíncrona (AJAX), podrías leer el contenido del archivo externo e insertarlo como contenido de un elemento <style>.

Código Javascript:
Ver original
  1. var ventana = window.open(),
  2.     css = document.createElement("style"),
  3.     foo = document.querySelector("#id del elemento"),
  4.     ajax = function(url, elem, callback){
  5.         var xhr = new XMLHttpRequest();
  6.         xhr.open("GET", url, true);
  7.         xhr.send();
  8.         xhr.addEventListener("load", function(){
  9.             if (this.status == 200){
  10.                 elem.innerHTML = this.responseText;
  11.                 callback();
  12.             }
  13.         }, false);
  14.     };
  15.  
  16. ajax("estilos.css", css, function(){
  17.     ventana.document.body.appendChild(css);
  18.     ventana.document.body.appendChild(foo);
  19.     ventana.print();
  20. });

De esta manera, creamos la ventana emergente, al elemento <style>, tomamos al elemento que queremos añadir a la ventana emergente y construimos la función que realizará la petición asíncrona. A ella le pasamos la ruta del archivo externo, el elemento al cual se insertará el contenido del archivo externo y una función que se ejecutará al finalizar el proceso.

En la función, creamos una instancia al objeto XMLHttpRequest, iniciamos y ejecutamos la petición y cuando esta se haya completado y el código HTTP nos indique que el proceso fue exitoso, añadimos el contenido del archivo externo al elemento <style> y ejecutamos la llamada de retorno.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand