2017-07-21 168 views
0

我正在做一本練習,出於某種原因,我無法讓Geolocation API將我的座標發回給我。瀏覽器提示我獲取我的位置的權限,所以很多工作,但它不會更新div與「位置」ID中的文本。JavaScript:沒有通過地理位置API獲取位置

我想我通過document.getElementById函數正確訪問元素。

HTML:

<!doctype html> 
<html> 
    <head> 
     <meta charset = "utf-8"> 
     <title>Where am I?</title> 
     <script src="loc.js"></script> 
     <link rel="stylesheet" href="loc.css"> 
    </head> 

    <body> 
     <div id="location"> 
      Your location will be here. 
     </div> 
    </body> 

</html> 

JS:

window.onload = getMyLocation; 

function getMyLocation(){ 
    if(navigator.geolocation){ 
     navigator.geolocation.getCurrentPosition(displayLocation); 
    } else { 
     alert("Ooops, no geolocation support!") 
    } 
} 

function displayLocation(position){ 
    var latitude = position.coords.latitude; 
    var longitude = position.coords.longitude; 

    var div = document.getElementById("location"); 
    div.innerHTML = "You are at Latitude: " + latitude + ", Longtitude: " + longitude; 
} 
+0

我剛剛運行你的代碼,它的工作。你是否正確地從Google獲取緯度/經度,只有顯示不起作用? –

+0

我剛剛被提示授予權限(我這樣做),但該頁面不會從原始HTML更新。它只是說「你的位置會在這裏。」如果你得到「你在Latitude:X,Longitude:Y」,那麼我認爲問題在我的最後,而不是代碼。 – Matt

+0

在您的代碼var var longitude放入alert(longitude)後;你應該得到一個數字。 –

回答

0

您必須在大多數瀏覽器使用HTTPS,這些天來訪問地理位置。本地主機URL可能會或可能無法工作。