我在 JavaScript 中使用 navigator.geolocation.watchPosition
,我想要一种方法来处理用户可能在 watchPosition
找到其位置之前提交依赖于位置的表单的可能性。
理想情况下,用户会定期看到“等待位置”消息,直到获得位置,然后提交表单。
但是,我不确定如何在 JavaScript 中实现它,因为它缺少 wait
函数。
当前代码:
var current_latlng = null;
function gpsSuccess(pos){
//console.log('gpsSuccess');
if (pos.coords) {
lat = pos.coords.latitude;
lng = pos.coords.longitude;
}
else {
lat = pos.latitude;
lng = pos.longitude;
}
current_latlng = new google.maps.LatLng(lat, lng);
}
watchId = navigator.geolocation.watchPosition(gpsSuccess,
gpsFail, {timeout:5000, maximumAge: 300000});
$('#route-form').submit(function(event) {
// User submits form, we need their location...
while(current_location==null) {
toastMessage('Waiting for your location...');
wait(500); // What should I use instead?
}
// Continue with location found...
});
原文由 Richard 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用超时来尝试重新提交表单: