Saving variables outside of navigator.geolocation.getCurrentPosition? (javascript)

限于喜欢 提交于 2019-11-30 20:41:32

You have to remember the async\ajax nature.

this is the execution order of your code:

var lat;
alert(lat); // this alerts null
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
function callback (position) {
    lat = position.coords.latitude;
}

This why you get null. async!, async! :)

You can save your Position variable to input hidden field on document ready. After that, you can use jQuery to get back Geolocation value

Javscript:

<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>

HTML:

    <input hidden id='pos_lat' value='' /> 
    //value = position latitude on load

To get back value:

jQuery('#pos_lat').val();
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!