From 99c123b159e85ab9d97bea65a5ec4fff62023bf9 Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Sun, 8 Sep 2013 21:05:07 -0400 Subject: Move parsing methods to their own files (separates manipulation dependency from core) --- src/core/parseHTML.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/core/parseHTML.js (limited to 'src/core/parseHTML.js') diff --git a/src/core/parseHTML.js b/src/core/parseHTML.js new file mode 100644 index 000000000..b097bfcc5 --- /dev/null +++ b/src/core/parseHTML.js @@ -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; +}); -- cgit v1.2.3