Soy consciente de la carga dinámica de script/css al agregar <style>
o <link>
etiquetas a la cabeza o al cuerpo de la página, pero luego se ejecutará mediante el navegador una vez descargado. Estaba pensando en otras formas de descargar pero no ejecuto el código javascript/css. En primer lugar lo que viene en mi mente era XMLHttpRequest:¿Cuáles son las maneras de cargar JavaScript o CSS sin ejecutarlos?
//simple execution received script
var executeScript = function(code){
eval(code);
};
//create XMLHttpRequest in cross-browser manner
var xhr = createXMLHTTPObject();
//check whether file is loaded
var checkStatus = function(){
if(xhr.readyState == 4){
if(xhr.status >= 200 && xhr.status < 300 || xhr == 304){
executeScript(xhr.responseText);
}
else {//error
}
}
};
//do request
xhr.open('get','http://podlipensky.com/examples/dynamicscript/hey.js', true);
xhr.onreadystatechange = checkStatus;
xhr.send(null);
Pero en este caso estamos limitados con los scripts desde el mismo dominio, debido a la política del mismo origen (aunque podemos tratar de solucionar con CORS)
Otro enfoque, en el que estaba pensando es agregar dinámicamente iframe
a la página y luego agregar la etiqueta script
al iframe
, por lo que el script se ejecutará una vez que se descargó, pero ocurre en el contexto de otra página - iframe
.
¿Hay alguna otra forma de descargar y ejecutar el script?
ACTUALIZACIÓN:
Una de las razones por las que sería útil para descargar, pero no ejecutar javascript/css es pre-carga de bibliotecas de terceros, sino que los utilizan sólo en la demanda.
El hecho de que se descargue css/javascript no significa que se ejecute de inmediato. Para eso están los métodos/clases. Además, si va a usar ajax, use 'jQuery' – Darcy
¿Es realmente cierto que solo el 23% de las otras 83 preguntas que ha formulado han recibido respuestas aceptables? –
Aquí hay una manera única, pero definitivamente no es práctica para el uso normal http://blog.nihilogic.dk/2008/05/compression-using- canvas-and-png.html – qw3n