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为我指明了正确的方向