Я только что начал обнаруживать, что navigator.geolocation.getCurrentPosition не работает с Firefox, когда я отказываюсь раскрывать свое местоположение. То есть он не возвращается с ошибкой, как это было раньше. Он отлично работает на Safari и Chrome, но не Firefox 33.1navigator.geolocation.getCurrentPosition не работает с Firefox
Я вижу эту проблему при запуске w3schools пример кода (http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation_error), который выглядит следующим образом:
<!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; \t
}
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>
Это работает Firefox, если я разрешу доступ к моей позиции. Если я откажу в доступе, вызовут функции showPosition или showError. Ничего не произошло. Я пробовал это с Mac и PC Firefox и получал ту же проблему. Хорошо работает с Safari и Chrome.
работает над FF 30.0, загружает последние – pherris
также работает над FF 34.0 - может быть, проблема с 33.1? Какую ошибку вы видите? Объект, переданный showError, - 'PositionError {code: 1, message:« Пользователь отклонил запрос геолокации »}' для меня. – pherris
Я вообще не вижу ошибки, как будто функция не возвращает –