aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/parseHTML.js
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2013-09-08 21:05:07 -0400
committerTimmy Willison <timmywillisn@gmail.com>2013-09-08 21:05:07 -0400
commit99c123b159e85ab9d97bea65a5ec4fff62023bf9 (patch)
tree6416b60fffdbdc8ee09dfdd3de0aed20b4fdf11d /src/core/parseHTML.js
parenteb9cbfcaf6803a07a953e0ca0922a973c5a11016 (diff)
downloadjquery-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.js38
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;
+});