Prevented non-script <script> blocks from executing, fixing #3733.

This commit is contained in:
John Resig 2009-01-11 19:33:01 +00:00
parent 9d997a81e2
commit 73ff49ac9a
2 changed files with 6 additions and 2 deletions

View file

@ -923,7 +923,7 @@ jQuery.extend({
if ( fragment ) { if ( fragment ) {
for ( var i = 0; ret[i]; i++ ) { for ( var i = 0; ret[i]; i++ ) {
if ( jQuery.nodeName( ret[i], "script" ) ) { if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type === "text/javascript") ) {
scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
} else { } else {
if ( ret[i].nodeType === 1 ) if ( ret[i].nodeType === 1 )

View file

@ -1352,7 +1352,7 @@ test("val(String/Number)", function() {
}); });
test("html(String)", function() { test("html(String)", function() {
expect(13); expect(17);
jQuery.scriptorder = 0; jQuery.scriptorder = 0;
@ -1381,6 +1381,10 @@ test("html(String)", function() {
equals( $div.html( 5 ).html(), '5', 'Setting a number as html' ); equals( $div.html( 5 ).html(), '5', 'Setting a number as html' );
equals( $div.html( 0 ).html(), '0', 'Setting a zero as html' ); equals( $div.html( 0 ).html(), '0', 'Setting a zero as html' );
reset();
jQuery("#main").html('<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>');
stop(); stop();
jQuery("#main").html('<script type="text/javascript">ok( true, "jQuery().html().evalScripts() Evals Scripts Twice in Firefox, see #975" );</script>'); jQuery("#main").html('<script type="text/javascript">ok( true, "jQuery().html().evalScripts() Evals Scripts Twice in Firefox, see #975" );</script>');