Skip to content

Commit f0732c1

Browse files
rwaldrondmethvin
authored andcommitted
Fix #11323. Consistently use rscriptType in jQuery.clean()
1 parent 1ff284d commit f0732c1

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/manipulation.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,8 @@ jQuery.extend({
644644
},
645645

646646
clean: function( elems, context, fragment, scripts ) {
647-
var checkScriptType;
647+
var checkScriptType, script, j,
648+
ret = [];
648649

649650
context = context || document;
650651

@@ -653,8 +654,6 @@ jQuery.extend({
653654
context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
654655
}
655656

656-
var ret = [], j;
657-
658657
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
659658
if ( typeof elem === "number" ) {
660659
elem += "";
@@ -762,16 +761,17 @@ jQuery.extend({
762761
return !elem.type || rscriptType.test( elem.type );
763762
};
764763
for ( i = 0; ret[i]; i++ ) {
765-
if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
766-
scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
764+
script = ret[i];
765+
if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) {
766+
scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script );
767767

768768
} else {
769-
if ( ret[i].nodeType === 1 ) {
770-
var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
769+
if ( script.nodeType === 1 ) {
770+
var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType );
771771

772772
ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
773773
}
774-
fragment.appendChild( ret[i] );
774+
fragment.appendChild( script );
775775
}
776776
}
777777
}

test/unit/manipulation.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1243,7 +1243,7 @@ test("html(undefined)", function() {
12431243
});
12441244

12451245
var testHtml = function(valueObj) {
1246-
expect(34);
1246+
expect(35);
12471247

12481248
jQuery.scriptorder = 0;
12491249

@@ -1298,7 +1298,7 @@ var testHtml = function(valueObj) {
12981298

12991299
QUnit.reset();
13001300

1301-
jQuery("#qunit-fixture").html(valueObj("<script type='something/else'>ok( false, 'Non-script evaluated.' );</script><script type='text/javascript'>ok( true, 'text/javascript is evaluated.' );</script><script>ok( true, 'No type is evaluated.' );</script><div><script type='text/javascript'>ok( true, 'Inner text/javascript is evaluated.' );</script><script>ok( true, 'Inner No type is evaluated.' );</script><script type='something/else'>ok( false, 'Non-script evaluated.' );</script></div>"));
1301+
jQuery("#qunit-fixture").html(valueObj("<script type='something/else'>ok( false, 'Non-script evaluated.' );</script><script type='text/javascript'>ok( true, 'text/javascript is evaluated.' );</script><script>ok( true, 'No type is evaluated.' );</script><div><script type='text/javascript'>ok( true, 'Inner text/javascript is evaluated.' );</script><script>ok( true, 'Inner No type is evaluated.' );</script><script type='something/else'>ok( false, 'Non-script evaluated.' );</script><script type='type/ecmascript'>ok( true, 'type/ecmascript evaluated.' );</script></div>"));
13021302

13031303
var child = jQuery("#qunit-fixture").find("script");
13041304

@@ -1324,7 +1324,7 @@ test("html(String)", function() {
13241324
test("html(Function)", function() {
13251325
testHtml(functionReturningObj);
13261326

1327-
expect(36);
1327+
expect(37);
13281328

13291329
QUnit.reset();
13301330

0 commit comments

Comments
 (0)