Fix #13013. Move jQuery.buildFragment() to compat plugin.

This commit is contained in:
Dave Methvin 2012-12-06 21:17:27 -05:00
parent 747600b157
commit 282c044d64
2 changed files with 6 additions and 20 deletions

View File

@ -493,7 +493,8 @@ jQuery.extend({
return [ context.createElement( parsed[1] ) ]; return [ context.createElement( parsed[1] ) ];
} }
parsed = jQuery.buildFragment( [ data ], context, scripts ); parsed = context.createDocumentFragment();
jQuery.clean( [ data ], context, parsed, scripts );
if ( scripts ) { if ( scripts ) {
jQuery( scripts ).remove(); jQuery( scripts ).remove();
} }

View File

@ -292,7 +292,7 @@ jQuery.fn.extend({
// Flatten any nested arrays // Flatten any nested arrays
args = core_concat.apply( [], args ); args = core_concat.apply( [], args );
var fragment, first, results, scripts, hasScripts, iNoClone, node, doc, var fragment, first, scripts, hasScripts, iNoClone, node, doc,
i = 0, i = 0,
l = this.length, l = this.length,
value = args[0], value = args[0],
@ -310,8 +310,9 @@ jQuery.fn.extend({
} }
if ( this[0] ) { if ( this[0] ) {
results = jQuery.buildFragment( args, this ); doc = this[0].ownerDocument;
fragment = results; fragment = doc.createDocumentFragment();
jQuery.clean( args, doc, fragment );
first = fragment.firstChild; first = fragment.firstChild;
if ( fragment.childNodes.length === 1 ) { if ( fragment.childNodes.length === 1 ) {
@ -512,22 +513,6 @@ function cloneFixAttributes( src, dest ) {
dest.removeAttribute( jQuery.expando ); dest.removeAttribute( jQuery.expando );
} }
jQuery.buildFragment = function( args, context, scripts ) {
var fragment;
// Set context from what may come in as undefined or a jQuery collection or a node
// Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 &
// also doubles as fix for #8950 where plain objects caused createDocumentFragment exception
context = context || document;
context = !context.nodeType && context[0] || context;
context = context.ownerDocument || context;
fragment = context.createDocumentFragment();
jQuery.clean( args, context, fragment, scripts );
return fragment;
};
jQuery.each({ jQuery.each({
appendTo: "append", appendTo: "append",
prependTo: "prepend", prependTo: "prepend",