定义全局回调函数,把 timestamp 参数写成 window 下的方法名称。这里我的格式是 jsonp + 时间戳。发送请求和执行回调函数统一使用同一个 timestamp 参数即可。
/**
* 远程数据加载
* @method loader
* @param {String} o 参数配置
*/
function loader (o) {
var timestamp = 'jsonp' + new Date().getTime();
//定义全局回调函数
window[timestamp] = function (data) {
//执行配置参数中的回调函数
o.callback(data);
}
//读取远程 JSONP 数据
KISSY.getScript(o.url + timestamp);
}执行加载时,调用 loader 方法:
loader({
url : 'http://ooxx.html?callback=',
callback : function (data) {
console.log(data);
}
})