Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/11/2015, 15:27
jmg1189
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 8 años, 7 meses
Puntos: 2
Respuesta: funcion para imprimir un div conservando los estilos css

Cita:
Iniciado por Alexis88 Ver Mensaje
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
hola alexis88

mira la verdad es que se muy poco de o nada sobre ajax y poco tiempo jeje. No existe alguna forma de hacerlo sobre js?.