Rumah > hujung hadapan web > tutorial js > Penyelesaian kepada muatan tidak sah bagi teg skrip yang dibuat secara dinamik dalam petua IE8_javascript

Penyelesaian kepada muatan tidak sah bagi teg skrip yang dibuat secara dinamik dalam petua IE8_javascript

WBOY
Lepaskan: 2016-05-16 16:25:15
asal
1594 orang telah melayarinya

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:

Salin kod Kod adalah seperti berikut:
var loadJs = function(src, fun){
skrip var = null; skrip = document.createElement("skrip"); ​ script.type = "teks/javascript";
Script.src = src; Jika(jenis keseronokan === "fungsi"){
          skrip.onload = menyeronokkan;
}

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"); });
test.js:
console.log(jenis jQuery);

Hasil larian:



Salin kod

Kod adalah seperti berikut: undefined // Apabila test.js berjalan, jQuery belum dimuatkan lagi >> jenis jQuery // Berjalan dari konsol, objek jQuery ditemui, membuktikan masalah pemuatan pesanan "fungsi" Dan dalam kod di atas, script.onload tidak dilaksanakan Kod telah dimuatkan dengan jelas, jadi mengapa onload masih tidak dilaksanakan? Saya menyemak dalam talian dan mendapati bahawa banyak pembangun bahagian hadapan telah menghadapi masalah sukar ini, jadi saya menemui beberapa penyelesaian alternatif, seperti berikut:


Salin kod

Kod adalah seperti berikut:var loadJs = function(src, fun){ 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.getElementsByTagName("head")[0].appendChild(skrip); };

Keputusan pelaksanaan:




Salin kod


Kod adalah seperti berikut:

tidak ditentukan
js/jquery-1.11.0.min.js: memuatkan
test.js: lengkap
Daripada test.js
js/jquery-1.11.0.min.js: dimuatkan Salin kod


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:


Salin kod Kod adalah seperti berikut:js/jquery-1.11.0.min.js: memuatkan
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:


Salin kod Kod adalah seperti berikut:var loadJs = function(src, fun){
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.
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan