Core: do not expose second argument of the jQuery.globalEval

Closes jquery/api.jquery.com#831
Closes gh-2718
This commit is contained in:
Oleg Gaidarenko 2015-11-14 01:28:16 +03:00
parent e077ffb083
commit 6680c1b29e
3 changed files with 23 additions and 10 deletions

View File

@ -8,8 +8,10 @@ define( [
"./var/class2type",
"./var/toString",
"./var/hasOwn",
"./var/support"
], function( arr, document, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) {
"./var/support",
"./core/DOMEval"
], function( arr, document, slice, concat,
push, indexOf, class2type, toString, hasOwn, support, DOMEval ) {
var
version = "@VERSION",
@ -258,12 +260,8 @@ jQuery.extend( {
},
// Evaluates a script in a global context
globalEval: function( code, context ) {
context = context || document;
var script = context.createElement( "script" );
script.text = code;
context.head.appendChild( script ).parentNode.removeChild( script );
globalEval: function( code ) {
DOMEval( code );
},
// Convert dashed to camelCase; used by the css and data modules

14
src/core/DOMEval.js Normal file
View File

@ -0,0 +1,14 @@
define( [
"../var/document"
], function( document ) {
function DOMEval( code, doc ) {
doc = doc || document;
var script = doc.createElement( "script" );
script.text = code;
doc.head.appendChild( script ).parentNode.removeChild( script );
}
return DOMEval;
} );

View File

@ -15,6 +15,7 @@ define( [
"./data/var/dataPriv",
"./data/var/dataUser",
"./data/var/acceptData",
"./core/DOMEval",
"./core/init",
"./traversing",
@ -23,7 +24,7 @@ define( [
], function( jQuery, concat, push, access,
rcheckableType, rtagName, rscriptType,
wrapMap, getAll, setGlobalEval, buildFragment, support,
dataPriv, dataUser, acceptData ) {
dataPriv, dataUser, acceptData, DOMEval ) {
var
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
@ -192,7 +193,7 @@ function domManip( collection, args, callback, ignored ) {
jQuery._evalUrl( node.src );
}
} else {
jQuery.globalEval( node.textContent.replace( rcleanScript, "" ), doc );
DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
}
}
}