corrade-nucleus-nucleons – Rev 20

Subversion Repositories:
Rev:
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;

} );