2016-10-02 78 views
0

所以我試圖使用getCurrentPosition來顯示經緯度座標,但沒有任何顯示。我測試以查看瀏覽器是否接受它,並且錯誤消息不會彈出。getCurrentPosition()不會顯示 - javascript

使用Javascript:

window.onload = Location; 


var x = document.getElementById("location"); 


function Location() { 
    if (navigator.geolocation) { 
    navigator.geolocation.watchPosition(show); 
    } else { 
    x.innerHTML = "Not working"; 
    } 

} 

function show(position) { 
    x.innerHTML = position.coords.latitude; 
} 
+0

默認情況下JSFiddle在onload事件中運行代碼,所以設置'window.onload = getLocation;'不會因爲load事件已經被觸發 –

回答

0

if (navigator.geolocation)方法不這裏navigator.geolocation是一個空對象,而不管是否能夠得到位置工作。您可以console.log(navigator.geolocation)來驗證這一點。

相反,使用的navigator.geolocation.watchPosition錯誤回調參數:

function getLocation() { 
    navigator.geolocation.watchPosition(showPosition, throwError); 
} 

function throwError(err) { 
    switch (err.code) { 
     case 1: x.innerHTML = "Permission denied."; break; 
     case 2: x.innerHTML = "Position unavailable."; break; 
     case 3: x.innerHTML = "Request timed out."; break; 
     default: x.innerHTML = "Unknown error."; 
    } 
} 

https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition https://developer.mozilla.org/en-US/docs/Web/API/PositionError

此外,也有一些顯著的瀏覽器怪癖做到心中有數。

如果你在你的本地文件系統中,Chrome會阻止地理位置請求測試您的網站: HTML 5 Geo Location Prompt in Chrome

和Firefox 仍然將不能正確處理錯誤回調(向下滾動查看解決方法):Is there a way to check if geolocation has been DECLINED with Javascript?