first commit
This commit is contained in:
44
public/assets/jquery/src/core/parseHTML.js
vendored
Normal file
44
public/assets/jquery/src/core/parseHTML.js
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
import { jQuery } from "../core.js";
|
||||
import { rsingleTag } from "./var/rsingleTag.js";
|
||||
import { buildFragment } from "../manipulation/buildFragment.js";
|
||||
import { isObviousHtml } from "./isObviousHtml.js";
|
||||
|
||||
// Argument "data" should be string of html or a TrustedHTML wrapper of obvious 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" && !isObviousHtml( data + "" ) ) {
|
||||
return [];
|
||||
}
|
||||
if ( typeof context === "boolean" ) {
|
||||
keepScripts = context;
|
||||
context = false;
|
||||
}
|
||||
|
||||
var parsed, scripts;
|
||||
|
||||
if ( !context ) {
|
||||
|
||||
// Stop scripts or inline event handlers from being executed immediately
|
||||
// by using DOMParser
|
||||
context = ( new window.DOMParser() )
|
||||
.parseFromString( "", "text/html" );
|
||||
}
|
||||
|
||||
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 );
|
||||
};
|
||||
Reference in New Issue
Block a user