If statement 地理定位的退路
我在地理定位的最基本方面遇到了麻烦——无论我做什么,我似乎都无法触发回退。代码如下:If statement 地理定位的退路,if-statement,geolocation,fallback,If Statement,Geolocation,Fallback,我在地理定位的最基本方面遇到了麻烦——无论我做什么,我似乎都无法触发回退。代码如下: if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position){ var latitude = position.coords.latitude; var longitude = position.coords.longitude; var latNum = parseFloat(latit
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position){
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var latNum = parseFloat(latitude);
var longNum = parseFloat(longitude);
紧接着是一组嵌套的if…else if语句,这些语句根据用户在多个定义区域中的位置触发不同的函数,以及一条else语句,用于捕获用户不在任何定义位置的情况。这部分工作正常,包括最后的“else”条件。如果用户的设备没有启用地理位置,或者用户在收到提示时拒绝访问位置数据,则会出现问题
捕获这一点的代码很简单:
} else {
function10();
}
我曾在FF、Safari和Chrome中尝试过这一点,但结果相同:如果在提示时禁用位置服务或拒绝访问,则不会触发最终的“else”功能
我已经看过无数关于地理定位失败的例子,但不明白为什么它不起作用
如果有任何我出错的线索,我将不胜感激。好的-问题解决了!我不确定我是否觉得自己很傻或开明,但为了其他有同样问题的人的利益,以下是解决方案:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position){
// Do something here if you get position data
},
function() {
// Do something else if you don't get any position data
}
);
}
我想,我错的地方是我需要查找函数(位置)
的故障,而不是缺少支持地理定位的代理。相同if条件中的第二个函数在浏览器未返回任何位置数据时提供操作,无论原因为何。原始代码(上面)中的最后一个“else”语句只会在没有地理定位能力的设备上触发
这一切现在都是有道理的,但我不得不说谷歌上的文档和许多教程网站对此还很不清楚,经常提到我的初始语法,涵盖了没有启用地理定位能力的情况(与不存在的情况不同)
感谢on SO为我指明了正确的方向