annotate default/node_modules/jquery/src/core/parseHTML.js @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 define( [
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 "../core",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 "../var/document",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 "./var/rsingleTag",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 "../manipulation/buildFragment",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 // This is the only module that needs core/support
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 "./support"
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 ], function( jQuery, document, rsingleTag, buildFragment, support ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 "use strict";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 // Argument "data" should be string of html
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 // context (optional): If specified, the fragment will be created in this context,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 // defaults to document
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 // keepScripts (optional): If true, will include scripts passed in the html string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 jQuery.parseHTML = function( data, context, keepScripts ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 if ( typeof data !== "string" ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 return [];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 if ( typeof context === "boolean" ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 keepScripts = context;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 context = false;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 var base, parsed, scripts;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 if ( !context ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 // Stop scripts or inline event handlers from being executed immediately
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 // by using document.implementation
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 if ( support.createHTMLDocument ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 context = document.implementation.createHTMLDocument( "" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 // Set the base href for the created document
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 // so any parsed elements with URLs
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 // are based on the document's URL (gh-2965)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 base = context.createElement( "base" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 base.href = document.location.href;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 context.head.appendChild( base );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 } else {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 context = document;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 parsed = rsingleTag.exec( data );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 scripts = !keepScripts && [];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 // Single tag
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 if ( parsed ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 return [ context.createElement( parsed[ 1 ] ) ];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 parsed = buildFragment( [ data ], context, scripts );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 if ( scripts && scripts.length ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 jQuery( scripts ).remove();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 return jQuery.merge( [], parsed.childNodes );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 };
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 return jQuery.parseHTML;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 } );