58 lines
2.2 KiB
JavaScript
58 lines
2.2 KiB
JavaScript
/*
|
|
This software is allowed to use under GPL or you need to obtain Commercial or Enterise License
|
|
to use it in not GPL project. Please contact sales@dhtmlx.com for details
|
|
*/
|
|
if(dataProcessor) {
|
|
dataProcessor.prototype.enableJSONP = function(mode) {
|
|
if(mode) {
|
|
this._jsonp_attach_id = this.attachEvent("onBeforeDataSending", function(rowId,rowIdState,a1){
|
|
if (rowId)
|
|
this._in_progress[rowId]=(new Date()).valueOf();
|
|
|
|
var url = this.serverProcessor+(this._user?(getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&")):"");
|
|
url += ((url.indexOf("?")!=-1)?"&":"?")+this.serialize(a1,rowId);
|
|
|
|
this._jsonp(url, [], function(data){
|
|
var xml = new dtmlXMLLoaderObject(this.afterUpdate,this,true);
|
|
xml.loadXMLString(data);
|
|
this.afterUpdate(this, null, null, null, xml);
|
|
}, this);
|
|
|
|
this._waitMode++;
|
|
return false;
|
|
});
|
|
}
|
|
else {
|
|
if(this._jsonp_attach_id)
|
|
this.detachEvent(this._jsonp_attach_id);
|
|
}
|
|
};
|
|
dataProcessor.prototype._jsonp = function(url, params, callback, master){
|
|
var global_obj = "dataProcessor";
|
|
var id = "dp_jsonp_"+new Date().valueOf();
|
|
var script = document.createElement('script');
|
|
script.id = id;
|
|
script.type = 'text/javascript';
|
|
|
|
var head = document.getElementsByTagName("head")[0];
|
|
|
|
if (!params)
|
|
params = {};
|
|
params.jsonp = global_obj+"."+id; // would be called as dataProcessor.dp_jsonp_1938948394
|
|
dataProcessor[id]=function(){
|
|
callback.apply(master||window, arguments);
|
|
script.parentNode.removeChild(script);
|
|
callback = head = master = script = null;
|
|
delete dataProcessor[id];
|
|
};
|
|
|
|
var vals = [];
|
|
for (var key in params) vals.push(key+"="+encodeURIComponent(params[key]));
|
|
|
|
url += (url.indexOf("?") == -1 ? "?" : "&")+vals.join("&");
|
|
|
|
script.src = url ;
|
|
head.appendChild(script);
|
|
};
|
|
}
|