lib/Ext/core/class/Loader.js
function(url, onLoad, onError, scope, charset) {
            var script = document.createElement('script'),
                me = this,
                onLoadFn = function() {
                    me.cleanupScriptElement(script);
                    onLoad.call(scope);
                },
                onErrorFn = function() {
                    me.cleanupScriptElement(script);
                    onError.call(scope);
                };

            script.type = 'text/javascript';
            script.src = url;
            script.onload = onLoadFn;
            script.onerror = onErrorFn;
            script.onreadystatechange = function() {
                if (this.readyState === 'loaded' || this.readyState === 'complete') {
                    onLoadFn();
                }
            };

            if (charset) {
                script.charset = charset;
            }
            
            this.documentHead.appendChild(script);

            return script;
        }
function(url, onLoad, onError, scope, charset) {
            var script = document.createElement('script'),
                me = this,
                onLoadFn = function() {
                    me.cleanupScriptElement(script);
                    onLoad.call(scope);
                },
                onErrorFn = function() {
                    me.cleanupScriptElement(script);
                    onError.call(scope);
                };

            script.type = 'text/javascript';
            script.src = url;
            script.onload = onLoadFn;
            script.onerror = onErrorFn;
            script.onreadystatechange = function() {
                if (this.readyState === 'loaded' || this.readyState === 'complete') {
                    onLoadFn();
                }
            };

            if (charset) {
                script.charset = charset;
            }
            
            this.documentHead.appendChild(script);

            return script;
        }
function ( url , onLoad , onError , scope , charset ) { var script = document . createElement ( 'script' ) , me = this , onLoadFn = function ( ) { me . cleanupScriptElement ( script ) ; onLoad . call ( scope ) ; } , onErrorFn = function ( ) { me . cleanupScriptElement ( script ) ; onError . call ( scope ) ; } ; script . type = 'text/javascript' ; script . src = url ; script . onload = onLoadFn ; script . onerror = onErrorFn ; script . onreadystatechange = function ( ) { if ( this . readyState === 'loaded' || this . readyState === 'complete' ) { onLoadFn ( ) ; } } ; if ( charset ) { script . charset = charset ; } this . documentHead . appendChild ( script ) ; return script ; }
Inject a script element to document's head, call onLoad and onError accordingly
@private
Inject a script element to document s head call onLoad and onError accordingly