Estoy haciendo pruebas de QUnit en un IFRAME y tengo una función recursiva de JavaScript que carga todos los scripts de la página principal en el IFRAME antes de iniciar QUnit. Esto funciona genial Mi problema es que algunos de nuestros scripts usan document.ready para hacer que todo comience.¿Cómo puedo retrasar la preparación del documento hasta que se establezca una variable?
Algo como:
$(document).ready(function() {
// blah
});
hacer hacer su trabajo. Preferiría no cambiar el código de producción solo para dar cuenta de las pruebas y no quiero que estas secuencias de comandos de producción piensen que el documento IFRAME está "listo" hasta que se carguen todas las secuencias de comandos.
¿Cómo puedo retrasar "document.ready" en sí?
Aquí es mi pseudocódigo para darle un ejemplo para trabajar a partir de:
scripts[0] = "/foo/bar.js";
scripts[1] = "/blah/blah.js";
function RecursiveScriptStart(){
// I want to set document.ready = false right here!
if(scripts.length == 0) {
QUnitStart();
return;
}
RecursiveScriptLoader(0, scripts);
}
function RecursiveScriptLoader(currentScriptID, scripts) {
$.getScript(scripts[currentScriptID], function() {
if (currentScriptID == (scripts.length - 1)) {
QUnitStart();
}
else {
RecursiveScriptLoader(currentScriptID + 1, scripts);
}
});
}
function QUnitStart() {
// I want to set document.ready = true right here!
QUnit.stop();
QUnit.start();
}
El código real es similar, pero implica un selector de jQuery poblar la matriz "scripts[]
" con propiedades de la etiqueta de JavaScript "src".
Gracias!
[Este] (http://stackoverflow.com/questions/5852767/possible-to-defer-loading-of-jquery/5853028) pregunta puede ser útil. –