是否在navigator.geolocation.getCurrentPosition外部保存变量?(javascript)
我试图利用js的作用域从navigator.geolocation.getCurrentPosition中提取一个变量是否在navigator.geolocation.getCurrentPosition外部保存变量?(javascript),javascript,geolocation,navigator,w3c-geolocation,Javascript,Geolocation,Navigator,W3c Geolocation,我试图利用js的作用域从navigator.geolocation.getCurrentPosition中提取一个变量 var lat; function callback (position) { lat = position.coords.latitude; } navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000}); // after getCurrentPosition succeeds al
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。有办法做到这一点吗?您必须记住异步\ajax的本质 这是代码的执行顺序:
var lat;
alert(lat); // this alerts null
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
function callback (position) {
lat = position.coords.latitude;
}
这就是为什么会得到null异步,异步:)您可以保存位置变量以在文档准备就绪时输入隐藏字段。之后,您可以使用jQuery返回地理位置值 脚本:
<script>
var lat;
alert(lat); // this alerts null
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
function callback (position) {
jQuery('#pos_lat').val(position.coords.latitude);
}
</script>
我明白了,所以position.coords.lation确实存储在lat中?如果是的话,什么时候,我如何将lat中的数据传输到另一个变量?@Derek。使用
lat
参数从callback
调用其他函数,以设置localStorage.setItem(“pos_lat”,position.coords.latitude)
获取localStorage.getItem(“pos_lat”)代码>
<input hidden id='pos_lat' value='' />
//value = position latitude on load
jQuery('#pos_lat').val();