Bug Tracker

Ticket #2612: jquery-1.2.3-script-exec-order.patch

File jquery-1.2.3-script-exec-order.patch, 2.3 KB (added by jwagner, 14 years ago)
  • jquery-1.2.3.js

     
    520520                        if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
    521521                                obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
    522522
    523                         var scripts = jQuery( [] );
     523                        var scripts = [];
    524524
    525525                        jQuery.each(elems, function(){
    526526                                var elem = clone ?
     
    529529
    530530                                // execute all scripts after the elements have been injected
    531531                                if ( jQuery.nodeName( elem, "script" ) ) {
    532                                         scripts = scripts.add( elem );
     532                                        scripts.push( elem );
    533533                                } else {
    534534                                        // Remove any inner scripts for later evaluation
    535535                                        if ( elem.nodeType == 1 )
    536                                                 scripts = scripts.add( jQuery( "script", elem ).remove() );
     536                                                scripts.push( jQuery( "script", elem ).remove() );
    537537
    538538                                        // Inject the elements into the document
    539539                                        callback.call( obj, elem );
    540540                                }
    541541                        });
    542542
    543                         scripts.each( evalScript );
     543                        jQuery.evalScript(scripts);
    544544                });
    545545        }
    546546};
     
    548548// Give the init function the jQuery prototype for later instantiation
    549549jQuery.prototype.init.prototype = jQuery.prototype;
    550550
    551 function evalScript( i, elem ) {
    552         if ( elem.src )
    553                 jQuery.ajax({
    554                         url: elem.src,
    555                         async: false,
    556                         dataType: "script"
    557                 });
    558551
    559         else
    560                 jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
    561 
    562         if ( elem.parentNode )
    563                 elem.parentNode.removeChild( elem );
    564 }
    565 
    566552jQuery.extend = jQuery.fn.extend = function() {
    567553        // copy reference to target object
    568554        var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
     
    12071193                }
    12081194
    12091195                return ret;
     1196        },
     1197   
     1198        evalScript: function(scripts) {
     1199                if (!scripts.length) return;
     1200                var script = scripts.shift();
     1201                if ( script.src ) {
     1202                        var src = script.src;
     1203                        if ( script.parentNode )
     1204                                script.parentNode.removeChild( script );
     1205                        jQuery.getScript(src, function() {
     1206                                jQuery.evalScript(scripts);
     1207                        });
     1208                } else {
     1209                        jQuery.globalEval( script.text || script.textContent || script.innerHTML || "" );
     1210                        if ( script.parentNode )
     1211                                script.parentNode.removeChild( script );
     1212                        jQuery.evalScript(scripts);
     1213                }
    12101214        }
     1215   
     1216   
     1217   
    12111218});
    12121219
    12131220var userAgent = navigator.userAgent.toLowerCase();