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:12:58 -0400 |
commit | 44596aa8f2cc908c73bc149fccbcc0f8458a330a (patch) | |
tree | efdb578e20becb8601132f3f8a9ca1d351ebcfb3 /src/core/parseHTML.js | |
parent | 48e13e9a5f9ab1ec0ce576d35271c8f2c7c7554d (diff) | |
download | jquery-44596aa8f2cc908c73bc149fccbcc0f8458a330a.tar.gz jquery-44596aa8f2cc908c73bc149fccbcc0f8458a330a.zip |
Move parsing methods to their own files (separates manipulation dependency from core)
Conflicts:
src/core.js
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; +}); |