squash! Set attributes all at once, src last

This commit is contained in:
Dave Methvin 2018-03-07 20:09:09 -05:00
parent 1f4375a342
commit dc48b11e0c
2 changed files with 8 additions and 13 deletions

View File

@ -48,19 +48,16 @@ jQuery.ajaxTransport( "script", function( s ) {
var script, callback;
return {
send: function( _, complete ) {
script = jQuery( "<script>" ).prop( {
charset: s.scriptCharset,
src: s.url
} ).attr( s.scriptAttrs || {} ).on(
"load error",
callback = function( evt ) {
script = jQuery( "<script>" )
.attr( s.scriptAttrs || {} )
.prop( { charset: s.scriptCharset, src: s.url } )
.on( "load error", callback = function( evt ) {
script.remove();
callback = null;
if ( evt ) {
complete( evt.type === "error" ? 404 : 200, evt.type );
}
}
);
} );
// Use native DOM manipulation to avoid our domManip AJAX trickery
document.head.appendChild( script[ 0 ] );

View File

@ -91,15 +91,13 @@ QUnit.module( "ajax", {
ajaxTest( "jQuery.ajax() - custom attributes for script tag", 4,
function( assert ) {
var nonceValue = "0123456789";
return {
create: function( options ) {
var xhr;
options.dataType = "script";
options.scriptAttrs = { id: "jquery-ajax-test", nonce: nonceValue };
xhr = jQuery.ajax( url( "data/script.php?header=ecma" ), options );
// Ensure the script tag has the nonce attr on it
assert.ok( nonceValue === jQuery( "#jquery-ajax-test" ).attr( "nonce" ), "nonce value" );
options.scriptAttrs = { id: "jquery-ajax-test", async: "async" };
xhr = jQuery.ajax( url( "mock.php?action=script" ), options );
assert.equal( jQuery( "#jquery-ajax-test" ).attr( "async" ), "async", "attr value" );
return xhr;
},
success: function() {