Contoh dalam artikel ini menerangkan penyelesaian kepada beban tidak sah bagi teg skrip yang dibuat secara dinamik dalam IE8. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Semasa mengerjakan projek hari ini, saya menemui masalah pelik Teg skrip yang dibuat secara dinamik tidak boleh mencetuskan acara onload di bawah IE8.
Kod adalah seperti berikut:
loadJs("js/jquery-1.11.0.min.js", function(){
console.log("Dari jQuery");
LoadJs("test.js", function(){
console.log("Dari test.js");
});
});
Keputusan pelaksanaan:
js/jquery-1.11.0.min.js: dimuatkan
Daripada jQuery
fungsi
test.js: lengkap
Daripada test.js
Kali ini, susunan pelaksanaan sepenuhnya mengikut pesanan yang kami tempah, tetapi kod di atas kelihatan sangat janggal dan perlu bersarang lapisan demi lapisan, jadi saya menemui kaedah penulisan ini:
skrip var = null;
skrip = document.createElement("skrip");
script.type = "teks/javascript";
Script.src = src;
Jika(jenis keseronokan === "fungsi"){
skrip.onreadystatechange = function() {
var r = script.readyState;
console.log(src ": " r);
Jika (r === 'dimuatkan' || r === 'lengkap') {
skrip.onreadystatechange = null;
seronok();
}
};
}
Document.write(script.outerHTML);
//document.getElementsByTagName("head")[0].appendChild(skrip);
};
loadJs("js/jquery-1.11.0.min.js", function(){
console.log("Dari jQuery");
});
loadJs("test.js", function(){
console.log("Dari test.js");
});
Susunan keputusan pelaksanaan juga berbeza:
Salin kod
Kod adalah seperti berikut:
fungsi
js/jquery-1.11.0.min.js: dimuatkan
Daripada jQuery
test.js: dimuatkan
Salin kod
Kod adalah seperti berikut:
loadJs("test.js", function(){
console.log("Dari test.js");
});
loadJs("js/jquery-1.11.0.min.js", function(){
Salin kod
Kod adalah seperti berikut:
tidak ditentukan
test.js: dimuatkan
Daripada test.js
js/jquery-1.11.0.min.js: dimuatkan
Daripada jQuery
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.