传递参数给json_callback函数
Passing parameter to json_callback function
我正在使用mapquest的反向地理定位方法,它看起来像这样
function fieldVia_changed(a)
{
if (document.getElementsByName("via"+a)[0].value.trim().length!=0)
{
var via = document.getElementsByName("via"+a)[0].value ;
var strV = via.replace(/ |,/g, "+");
var s = document.createElement('script');
s.src = 'http://open.mapquestapi.com/nominatim/v1/search?q='+strV+'&json_callback=cbv&format=json&polygon=1&addressdetails=1';
document.getElementsByTagName('head')[0].appendChild(s);
}
}
请求的结果在接受参数
的cbv函数中处理。 function cbv(json)
{
v_lat[0] = json[0].lat;
v_lng[0] = json[0].lon;
}
但是,我需要能够从fieldVia_changed函数传递另一个参数到cbv函数,以便我可以正确处理信息。cbv函数定义类似于函数cbv(json,a)。我到处都找了,但就是找不到解决办法。
在JSONP系统中,服务器端通常没有传递额外参数的选项。一种可能的解决方案是在回调函数名称中使用a
的值,并动态创建该函数作为cbv()
函数之间的一种man,允许您将a
作为第二个参数传递。
function fieldVia_changed(a) {
if (document.getElementsByName("via" + a)[0].value.trim().length != 0) {
// dynamically create the function
window['cbv_' + a] = function (json) {
cbv(json, a);
};
var via = document.getElementsByName("via" + a)[0].value;
var strV = via.replace(/ |,/g, "+");
var s = document.createElement('script');
// call the function cbv_x
s.src = 'http://open.mapquestapi.com/nominatim/v1/search?q=' + strV + '&json_callback=cbv_' + a + '&format=json&polygon=1&addressdetails=1';
document.getElementsByTagName('head')[0].appendChild(s);
}
}
function cbv(json, a) {
v_lat[0] = json[0].lat;
v_lng[0] = json[0].lon;
console.log(a);
}
如果a
是某种短标识符,这是OK的,如果它来自用户输入,那么它不适合在函数名中使用。你使用的是name属性所以我认为这没问题
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- node js callback()函数未定义
- 未捕获的类型错误:callback.apply不是函数
- 传递参数给Window[callback]函数
- 在异步.直到(test, function, callback)测试函数没有被重复调用
- TypeError: callback不是一个函数
- Opera不调用flash的ExternalInterface.callback()函数在js内部由flash调用的回调
- TypeError: callBack不是一个函数
- 在React.js中使用Deferred或在我的成功函数中使用callback
- 等待Callback和我们的结果数据从这个函数中取出另一个进程
- 将callback函数作为Ajax-Request的参数传递
- jQuery自动完成“TypeError: callback不是一个函数”
- nodejs: TypeError: callback不是一个函数
- 将变量传递给callBack函数
- 获取被单击元素的一些数据,以便在Callback函数中使用
- Javascript callback()用于两个函数