Estoy intentando cargar un conjunto de scripts en orden, pero el evento onload no se activa para mí.
var scripts = [
'//cdnjs.cloudflare.com/ajax/libs/less.js/1.3.3/less.min.js',
'//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.min.js',
MK.host+'/templates/templates.js'
];
function loadScripts(scripts){
var script = scripts.shift();
var el = document.createElement('script');
el.src = script;
el.onload = function(script){
console.log(script + ' loaded!');
if (scripts.length) {
loadScripts(scripts);
}
else {
console.log('run app');
MK.init();
}
};
$body.append(el);
}
loadScripts(scripts);
Supongo que los eventos nativos como el.onload no se activan cuando se usa jQuery para agregar el elemento al DOM. Si uso nativo document.body.appendChild(el), se dispara como se esperaba.
javascript
jquery
onload
chovy
fuente
fuente

Respuestas:
Debe establecer el
srcatributo después delonloadevento, por ejemplo:También debe agregar el script al DOM antes de adjuntar el
onloadevento:Recuerde que debe verificar la
readystatecompatibilidad con IE. Si está utilizando jQuery, también puede probar elgetScript()método: http://api.jquery.com/jQuery.getScript/fuente
document.body.appendChild(el)lugar de $ ('body'). Append (el); luego, el evento onload se dispara como se esperaba.srcen irrelevante.onloadysrc?