summaryrefslogtreecommitdiffstats
path: root/js/vendor/jquery/src/core/parseHTML.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/jquery/src/core/parseHTML.js')
-rw-r--r--js/vendor/jquery/src/core/parseHTML.js28
1 files changed, 19 insertions, 9 deletions
diff --git a/js/vendor/jquery/src/core/parseHTML.js b/js/vendor/jquery/src/core/parseHTML.js
index 64cf2a18a..87c2147d1 100644
--- a/js/vendor/jquery/src/core/parseHTML.js
+++ b/js/vendor/jquery/src/core/parseHTML.js
@@ -1,11 +1,16 @@
-define([
+define( [
"../core",
+ "../var/document",
"./var/rsingleTag",
- "../manipulation" // buildFragment
-], function( jQuery, rsingleTag ) {
+ "../manipulation/buildFragment",
-// data: string of html
-// context (optional): If specified, the fragment will be created in this context, defaults to document
+ // This is the only module that needs core/support
+ "./support"
+], function( jQuery, document, rsingleTag, buildFragment, support ) {
+
+// Argument "data" should be 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" ) {
@@ -15,17 +20,22 @@ jQuery.parseHTML = function( data, context, keepScripts ) {
keepScripts = context;
context = false;
}
- context = context || document;
+
+ // Stop scripts or inline event handlers from being executed immediately
+ // by using document.implementation
+ context = context || ( support.createHTMLDocument ?
+ document.implementation.createHTMLDocument( "" ) :
+ document );
var parsed = rsingleTag.exec( data ),
scripts = !keepScripts && [];
// Single tag
if ( parsed ) {
- return [ context.createElement( parsed[1] ) ];
+ return [ context.createElement( parsed[ 1 ] ) ];
}
- parsed = jQuery.buildFragment( [ data ], context, scripts );
+ parsed = buildFragment( [ data ], context, scripts );
if ( scripts && scripts.length ) {
jQuery( scripts ).remove();
@@ -36,4 +46,4 @@ jQuery.parseHTML = function( data, context, keepScripts ) {
return jQuery.parseHTML;
-});
+} );