- Timestamp:
- 08/30/08 22:36:22 (4 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/jsonptester/trunk/js/jsonptester.js
r18478 r18488 226 226 var data = rec.data; 227 227 var url = data.url; 228 var queryParams = data.queryParams ? data.queryParams.split(/\s+/) : []; 228 229 229 230 var wrapper = Ext.getCmp('directoryFormWrapper'); … … 247 248 wrapper.doLayout(); 248 249 249 function createFields( rec) {250 var params = [];250 function createFields() { 251 var params = []; 251 252 url.replace(/\{([^\}]+)\}/g, function($1,$2) { params.push($2) }); 253 Array.prototype.push.apply(params, queryParams); 252 254 return $.map(params, function(paramName) { 253 255 var type = data[paramName+':datatype'] || 'string'; … … 263 265 function getJSONPValues() { 264 266 var values = Ext.getCmp('directoryForm').getForm().getValues(); 267 var params = [] 268 var jsonpUrl = url.replace(/\{([^\}]+)\}/g, function($1, $2) { 269 return encodeURIComponent(values[$2] || ''); 270 }); 271 $.map(queryParams, function(paramName) { 272 if (values[paramName]) { 273 params.push({ name : paramName, value : values[paramName] }); 274 } 275 }); 276 if (params.length>0) { 277 jsonpUrl += jsonpUrl.indexOf('?')>=0 ? '&' : '?'; 278 jsonpUrl += $.map(params, function(param) { 279 return param.name + '=' + encodeURIComponent(param.value); 280 }).join('&'); 281 } 265 282 return { 266 url : url.replace(/\{([^\}]+)\}/g, function($1, $2) { 267 var v = values[$2] || ''; 268 return data[$2+':encodeURI'] ? encodeURIComponent(v) : v; 269 }), 283 url : jsonpUrl, 270 284 callbackParam : data.jsonpParam 271 } ;285 } 272 286 } 273 287 } … … 362 376 dataType : 'jsonp', 363 377 jsonp : node.attributes.callbackParam, 378 params : node.attributes.params, 364 379 cache : !node.attributes.nocache, 365 380 success : onSuccess, … … 395 410 }; 396 411 } 412 397 413 } 398 414
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)