/pack-rat/003_pack_rat/pack-rat/bower_components/jquery/src/core/parseHTML.js |
@@ -0,0 +1,65 @@ |
define( [ |
"../core", |
"../var/document", |
"./var/rsingleTag", |
"../manipulation/buildFragment", |
|
// This is the only module that needs core/support |
"./support" |
], function( jQuery, document, rsingleTag, buildFragment, support ) { |
|
"use strict"; |
|
// 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 ( typeof data !== "string" ) { |
return []; |
} |
if ( typeof context === "boolean" ) { |
keepScripts = context; |
context = false; |
} |
|
var base, parsed, scripts; |
|
if ( !context ) { |
|
// Stop scripts or inline event handlers from being executed immediately |
// by using document.implementation |
if ( support.createHTMLDocument ) { |
context = document.implementation.createHTMLDocument( "" ); |
|
// Set the base href for the created document |
// so any parsed elements with URLs |
// are based on the document's URL (gh-2965) |
base = context.createElement( "base" ); |
base.href = document.location.href; |
context.head.appendChild( base ); |
} else { |
context = document; |
} |
} |
|
parsed = rsingleTag.exec( data ); |
scripts = !keepScripts && []; |
|
// Single tag |
if ( parsed ) { |
return [ context.createElement( parsed[ 1 ] ) ]; |
} |
|
parsed = buildFragment( [ data ], context, scripts ); |
|
if ( scripts && scripts.length ) { |
jQuery( scripts ).remove(); |
} |
|
return jQuery.merge( [], parsed.childNodes ); |
}; |
|
return jQuery.parseHTML; |
|
} ); |