使用html获取当前位置并与javascript一起使用
我想了解HTML5的现状,并将其与javascript结合使用。 我做了一些测试,它可以工作,但在我的最终版本中,我有一个未定义的值使用html获取当前位置并与javascript一起使用,javascript,jquery,html,geolocation,Javascript,Jquery,Html,Geolocation,我想了解HTML5的现状,并将其与javascript结合使用。 我做了一些测试,它可以工作,但在我的最终版本中,我有一个未定义的值 function geolocError(dueToBrowser=true){ if(dueToBrowser){ alert('your browser does not support HTML5 geolocation'); }else{ alert('error with geolocation');
function geolocError(dueToBrowser=true){
if(dueToBrowser){
alert('your browser does not support HTML5 geolocation');
}else{
alert('error with geolocation');
}
}
function getPositon(){
return navigator.geolocation.getCurrentPosition(function(position){
return position.coords;
}, geolocError);
}
$(document).ready(function() {
if(navigator.geolocation) {
var pos = getPositon();
console.log(pos)
}
});
我的
console.log(pos)
返回我“未定义”
地理位置是异步的,您不能这样做。您应该在getCurrentPosition回调中设置逻辑或使用延迟对象:
见例
谢谢,它很管用,但这是个糟糕的新东西。我有一个想法,当它被加载时,在每一页上都有一个位置。例如,我想用我的位置发布评论,但我不想让用户等待发布请求:(这是一种将位置存储在cookie中的解决方案?我使用了sessionStorage而不是cookie
var defer = $.Deferred();
function getPositon() {
navigator.geolocation.getCurrentPosition(function (position) {
defer.resolveWith(position.coords);
}, geolocError);
return defer;
}
$(document).ready(function () {
if (navigator.geolocation) {
getPositon().done(function () {
console.log(this);
});
}
});