OSDN Git Service

new repo
[bytom/vapor.git] / tools / side_chain_tool / web / node_modules / jquery / src / core / parseHTML.js
1 define( [
2         "../core",
3         "../var/document",
4         "./var/rsingleTag",
5         "../manipulation/buildFragment",
6
7         // This is the only module that needs core/support
8         "./support"
9 ], function( jQuery, document, rsingleTag, buildFragment, support ) {
10
11 "use strict";
12
13 // Argument "data" should be string of html
14 // context (optional): If specified, the fragment will be created in this context,
15 // defaults to document
16 // keepScripts (optional): If true, will include scripts passed in the html string
17 jQuery.parseHTML = function( data, context, keepScripts ) {
18         if ( typeof data !== "string" ) {
19                 return [];
20         }
21         if ( typeof context === "boolean" ) {
22                 keepScripts = context;
23                 context = false;
24         }
25
26         var base, parsed, scripts;
27
28         if ( !context ) {
29
30                 // Stop scripts or inline event handlers from being executed immediately
31                 // by using document.implementation
32                 if ( support.createHTMLDocument ) {
33                         context = document.implementation.createHTMLDocument( "" );
34
35                         // Set the base href for the created document
36                         // so any parsed elements with URLs
37                         // are based on the document's URL (gh-2965)
38                         base = context.createElement( "base" );
39                         base.href = document.location.href;
40                         context.head.appendChild( base );
41                 } else {
42                         context = document;
43                 }
44         }
45
46         parsed = rsingleTag.exec( data );
47         scripts = !keepScripts && [];
48
49         // Single tag
50         if ( parsed ) {
51                 return [ context.createElement( parsed[ 1 ] ) ];
52         }
53
54         parsed = buildFragment( [ data ], context, scripts );
55
56         if ( scripts && scripts.length ) {
57                 jQuery( scripts ).remove();
58         }
59
60         return jQuery.merge( [], parsed.childNodes );
61 };
62
63 return jQuery.parseHTML;
64
65 } );