2012-07-07 111 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

相關問題