Move parsing methods to their own files (separates manipulation dependency from core)

This commit is contained in:
Timmy Willison
2013-09-08 21:05:07 -04:00
parent eb9cbfcaf6
commit 99c123b159
7 changed files with 82 additions and 58 deletions

38
src/core/parseHTML.js Normal file
View File

@@ -0,0 +1,38 @@
define([
"../core",
"../var/rsingleTag",
"../manipulation" // buildFragment
], function( jQuery, rsingleTag ) {
// data: string of html
// context (optional): If specified, the fragment will be created in this context, defaults to document
// keepScripts (optional): If true, will include scripts passed in the html string
jQuery.parseHTML = function( data, context, keepScripts ) {
if ( !data || typeof data !== "string" ) {
return null;
}
if ( typeof context === "boolean" ) {
keepScripts = context;
context = false;
}
context = context || document;
var parsed = rsingleTag.exec( data ),
scripts = !keepScripts && [];
// Single tag
if ( parsed ) {
return [ context.createElement( parsed[1] ) ];
}
parsed = jQuery.buildFragment( [ data ], context, scripts );
if ( scripts && scripts.length ) {
jQuery( scripts ).remove();
}
return jQuery.merge( [], parsed.childNodes );
};
return jQuery.parseHTML;
});