2012-07-07 125 views
0

看一看这样的:如何在navigator.geolocation.getcurrentposition完成后调用另一个js函数?

function doGeolocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(positionSuccess, positionError); 
     if(//here i need check) 
     { 
     Save(); 
     } 
     } 
    else 
    { 
    positionError(-1); 
    } 
} 

所以在内部“如果”我想检查navigator.geolocation.getcurrentposition();已成功地完成了。任何帮助将高度赞赏。

谢谢..

回答

1

getCurrentPosition确实成功了自己的检查,并要求根据结果不同的功能。

在您的功能中,成功时将调用名为positionSuccess的函数;如果地理定位失败,则将调用positionError

所以你需要提供一个名为positionSuccess()的功能,它可以进行保存。你不需要做自己的支票。

请注意,getCurrentPosition需要一些时间。这是交给一个单独的进程[这叫做异步处理],你的代码将继续到下一行。在您当前的代码中,在找到地理位置结果之前,执行会很好地到达“我需要检查的地方”测试。这就是为什么有其他功能可以处理成功和失败—不能保证何时返回结果。

+0

正确..我不希望我的'保存'方法在if块可以开始执行自己。在我的“保存”方法中,我将保存到客户端的取回坐标信息保存到cookie中,并在需要时使用它们将保存的位置信息指向地图上。就像您当前所说的那样,它提取默认坐标并保存它们当然我不想要。 – Mohit 2012-07-09 15:16:39

+0

@Unknown:所以只能在名为'positionSuccess()'的“Success”回调函数中执行保存操作。只有在getCurrentPosition成功时才会调用该函数。 – 2012-07-10 13:13:58

相关问题