2017-02-08 3 views
0

Я использовал сценарий несколько раз раньше, хотя недавно я не смог заставить его работать. Когда я пытаюсь запустить его, я получаю ошибку Location information is unavailable.Геолокация на веб-странице не работает

Я не уверен, почему. Я проверил примечания обновления браузеров и т. Д., Чтобы увидеть, была ли эта функция удалена, и я не могу найти ссылку на это.

Если у кого-то есть представление о том, что я делаю неправильно, я был бы очень признателен, если вы в состоянии указать мне в правильном направлении.

Заранее благодарен!

<!DOCTYPE html> 
<html> 
<body> 

<p>Click the button to get your coordinates.</p> 

<button onclick="getLocation()">Try It</button> 

<p id="demo"></p> 

<script> 
var x = document.getElementById("demo"); 

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition, showError); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
} 

function showError(error) { 
    switch(error.code) { 
     case error.PERMISSION_DENIED: 
      x.innerHTML = "User denied the request for Geolocation." 
      break; 
     case error.POSITION_UNAVAILABLE: 
      x.innerHTML = "Location information is unavailable." 
      break; 
     case error.TIMEOUT: 
      x.innerHTML = "The request to get user location timed out." 
      break; 
     case error.UNKNOWN_ERROR: 
      x.innerHTML = "An unknown error occurred." 
      break; 
    } 
} 
</script> 

</body> 
</html> 
+0

Вы пробовали, если геолокация работает вообще на этом устройстве в этом браузере? Таким образом, вы можете узнать, является ли это вашим кодом или браузером. Попробуйте демоверсию геолокации. – Syntac

+0

есть много причин. Вам нужно убедиться, что вы находитесь на 'https' или' localhost', а не 'http'. Также проверьте настройки вашего интернет-соединения и браузера, чтобы проверить, запрещен ли доступ к местоположению по умолчанию – Anirudha

ответ

1

Я предполагаю, что вы используете Chrome, и ваш сайт не имеет права SSL? К сожалению, в этих условиях гелотация не работает на Chrome. Вы должны протестировать другой браузер, т.е. Firefox или получить SSL для вашего сайта.

+0

Спасибо за вашу помощь! Это сработало. Я буду обращаться через HTTPS. Я не знал, что теперь это требуется (он работал на Firefox, как вы сказали). – Martyn