diff options
author | Timmy Willison <timmywillisn@gmail.com> | 2013-09-08 21:05:07 -0400 |
---|---|---|
committer | Timmy Willison <timmywillisn@gmail.com> | 2013-09-08 21:05:07 -0400 |
commit | 99c123b159e85ab9d97bea65a5ec4fff62023bf9 (patch) | |
tree | 6416b60fffdbdc8ee09dfdd3de0aed20b4fdf11d /src/core/parseHTML.js | |
parent | eb9cbfcaf6803a07a953e0ca0922a973c5a11016 (diff) | |
download | jquery-99c123b159e85ab9d97bea65a5ec4fff62023bf9.tar.gz jquery-99c123b159e85ab9d97bea65a5ec4fff62023bf9.zip |
Move parsing methods to their own files (separates manipulation dependency from core)
Diffstat (limited to 'src/core/parseHTML.js')
-rw-r--r-- | src/core/parseHTML.js | 38 |
1 files changed, 38 insertions, 0 deletions
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; +}); |