1
|
define([
|
2
|
"../core",
|
3
|
"./var/rsingleTag",
|
4
|
"../manipulation" // buildFragment
|
5
|
], function( jQuery, rsingleTag ) {
|
6
|
|
7
|
// data: string of html
|
8
|
// context (optional): If specified, the fragment will be created in this context, defaults to document
|
9
|
// keepScripts (optional): If true, will include scripts passed in the html string
|
10
|
jQuery.parseHTML = function( data, context, keepScripts ) {
|
11
|
if ( !data || typeof data !== "string" ) {
|
12
|
return null;
|
13
|
}
|
14
|
if ( typeof context === "boolean" ) {
|
15
|
keepScripts = context;
|
16
|
context = false;
|
17
|
}
|
18
|
context = context || document;
|
19
|
|
20
|
var parsed = rsingleTag.exec( data ),
|
21
|
scripts = !keepScripts && [];
|
22
|
|
23
|
// Single tag
|
24
|
if ( parsed ) {
|
25
|
return [ context.createElement( parsed[1] ) ];
|
26
|
}
|
27
|
|
28
|
parsed = jQuery.buildFragment( [ data ], context, scripts );
|
29
|
|
30
|
if ( scripts && scripts.length ) {
|
31
|
jQuery( scripts ).remove();
|
32
|
}
|
33
|
|
34
|
return jQuery.merge( [], parsed.childNodes );
|
35
|
};
|
36
|
|
37
|
return jQuery.parseHTML;
|
38
|
|
39
|
});
|