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, 10 months 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();