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 originalvar ventana = window.open(),
css = document.createElement("style"),
foo = document.querySelector("#id del elemento"),
ajax = function(url, elem, callback){
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.send();
xhr.addEventListener("load", function(){
if (this.status == 200){
elem.innerHTML = this.responseText;
callback();
}
}, false);
};
ajax("estilos.css", css, function(){
ventana.document.body.appendChild(css);
ventana.document.body.appendChild(foo);
ventana.print();
});
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