#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# File: node/js/node-load.js

    /**
     * Extended Node interface with a basic IO API.
     * @module node
     * @submodule node-load
     */

    /**
     * The default IO complete handler.
     * @method _ioComplete
     * @protected
     * @for Node
     * @param {String} code The response code.
     * @param {Object} response The response object.
     * @param {Array} args An array containing the callback and selector
     */

    Y.Node.prototype._ioComplete = function(code, response, args) {
        var selector = args[0],
            callback = args[1],
            tmp,
            content;

        if (response && response.responseText) {
            content = response.responseText;
            if (selector) {
                tmp = Y.DOM.create(content);
                content = Y.Selector.query(selector, tmp);
            }
            this.setContent(content);
        }
        if (callback) {
            callback.call(this, code, response);
        }
    };

    /**
     * Loads content from the given url and replaces the Node's
     * existing content with the remote content.
     * @method load
     * @param {String} url The URL to load via XMLHttpRequest.
     * @param {String} selector An optional selector representing a subset of an HTML document to load.
     * @param {Function} callback An optional function to run after the content has been loaded.
     * @chainable
     */
    Y.Node.prototype.load = function(url, selector, callback) {
        if (typeof selector == 'function') {
            callback = selector;
            selector = null;
        }
        var config = {
            context: this,
            on: {
                complete: this._ioComplete
            },
            arguments: [selector, callback]
        };

        Y.io(url, config);
        return this;
    };