You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.8 KiB
72 lines
1.8 KiB
/*
|
|
YUI 3.17.2 (build 9c3c78e)
|
|
Copyright 2014 Yahoo! Inc. All rights reserved.
|
|
Licensed under the BSD License.
|
|
http://yuilibrary.com/license/
|
|
*/
|
|
|
|
YUI.add('node-load', function (Y, NAME) {
|
|
|
|
/**
|
|
* 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;
|
|
};
|
|
|
|
|
|
}, '3.17.2', {"requires": ["node-base", "io-base"]});
|
|
|