我正在尝试使用js的范围从navigator.geolocation.getCurrentPosition中拉出一个变量
var lat;
function callback (position) {
lat = position.coords.latitude;
}
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
// after getCurrentPosition succeeds
alert(lat); // this alerts null
由于范围的原因,上面的代码无法在lat变量中存储position.coords.latitude。有没有办法做到这一点?
答案 0 :(得分:2)
你必须记住async \ ajax的性质。
这是代码的执行顺序:
var lat;
alert(lat); // this alerts null
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
function callback (position) {
lat = position.coords.latitude;
}
这就是为什么你得到null。 异步!,异步!:)
答案 1 :(得分:0)
您可以将Position变量保存到文档就绪输入隐藏字段。之后,您可以使用jQuery获取Geolocation值
Javscript:
<input hidden id='pos_lat' value='' />
//value = position latitude on load
HTML:
jQuery('#pos_lat').val();
获取价值:
<emp salesid="1">
<report>07-14-2015_DPLOH_SalesID_1.pdf</report>
<report>07-17-2015_DPLOH_SalesID_1.pdf</report>
<report>07-14-2015_DTE_SalesID_1.pdf</report>
<report>07-14-2015_IDT_SalesID_1.pdf</report>
<report>07-14-2015_Kratos_SalesID_1.pdf</report>
<report>07-14-2015_Spark_SalesID_1.pdf</report>
</emp>