Javascript-bron laadt niet in ie7

Ik heb een hele reeks javascript-bestanden die ik in de juiste volgorde moet laden. Een van hen laadt echter niet in ie7.

Dit is de functie die het laden uitvoert:

function loadScript(url, callback){
    var head = document.getElementsByTagName("head")[0];
    var script = document.createElement("script");
    script.src = url;

   //Attach handlers for all browsers
    var done = false;
    script.onload = script.onreadystatechange = function()
    {
            if( !done && ( !this.readyState 
                                    || this.readyState == "loaded" 
                                    || this.readyState == "complete") )
            {
                    done = true;

                   //Continue your code
                    callback();

                   //Handle memory leak in IE
                    script.onload = script.onreadystatechange = null;
                    head.removeChild( script );
            }
    };

    head.appendChild(script);
}

En de functie roept:

loadScript('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js',function(){
    loadScript('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js',function(){
        loadScript('http://XXX/js/data.php?rand='+Math.random(),function(){
            loadScript('http://XXX/js/jquery.inject.js?rand='+Math.random(),function(){
                console.log('a');
                loadScript('XXX/js/press.js?rand='+Math.random(),function(){
                    console.log('b');
                    inject_press();
                });

            });
        });
    });
});

Het bestand dat i jquery.inject.js niet laadt, is de code

console.log('y');

jQuery.prototype.inject = function(a){
    ...
}

Ook dit werkt in alle browsers behalve of7. De uitvoer is

a
b
0
toegevoegd de auteur McGarnagle, de bron
De onloads vuren wel, niet de console.log() s voor 'a' en 'b', die zijn weggestopt in de callbacka
toegevoegd de auteur Aakil Fernandes, de bron

1 antwoord

Dit is niet de beste manier om ECMAscript-bestanden te laden. Ik zou die bestanden een naam geven om ze te sorteren en dan te laden ASP.NET 4.5 bundeling .

0
toegevoegd
Ik weet. Ik wilde gewoon laten zien hoe ik dat zou oplossen.
toegevoegd de auteur Václav Dajbych, de bron
bundeling zou zeker raadzaam zijn, maar het OP vermeldde niet dat hij IIS of 4.5 (nog niet vrijgegeven) gebruikte.
toegevoegd de auteur John Culviner, de bron