Saya mencoba memuat sekumpulan skrip secara berurutan, tetapi peristiwa onload tidak diaktifkan untuk saya.
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);
Saya kira kejadian asli seperti el.onload tidak aktif ketika jQuery digunakan untuk menambahkan elemen ke DOM. Jika saya menggunakan native document.body.appendChild(el)
maka itu akan menyala seperti yang diharapkan.
javascript
jquery
onload
chovy
sumber
sumber
Jawaban:
Anda harus mengatur
src
atribut setelah ituonload
acara, f.ex:Anda juga harus menambahkan skrip ke DOM sebelum melampirkan
onload
acara:Ingatlah bahwa Anda perlu memeriksa
readystate
dukungan IE. Jika Anda menggunakan jQuery, Anda juga bisa mencobagetScript()
metode ini: http://api.jquery.com/jQuery.getScript/sumber
document.body.appendChild(el)
sebagai pengganti $ ('body']. Append (el); lalu peristiwa onload diaktifkan seperti yang diharapkan.src
tidak relevan.onload
dansrc
?