getCurrentPosition() не работает в Firefox
Я пытаюсь определить местоположение с помощью функции navigator.geolocation.getCurrentPosition(), но я не могу заставить ее работать в Firefox. Более конкретно, я сделал очень простой HTML-файл:
<!DOCTYPE HTML>
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="js/mapHandler.js"></script>
</head>
<body>
</body>
</html>
Как видите, это минимальный HTML-файл. Javascript просто делает следующее:
function displayLocation (position)
{
alert("displayLocation");
}
function displayError(positionErr)
{
alert("error");
}
function initialize()
{
if (!(navigator.geolocation == 'undefined'))
{
navigator.geolocation.getCurrentPosition(displayLocation, displayError,{timeout:10000});
}
else
{
alert('Geolocation unsupported');
}
}
$(document).ready(function(){initialize() });
Еще раз, это очень очень простой пример, который просто запрашивает позицию и делает пару предупреждений. Странно то, что когда я запускаю скрипт, я не могу получить никакого ответа. Кто-нибудь знает почему? Заранее спасибо:)
3 ответа
На самом деле я тестировал его на Chrome 32(он работал нормально) и Firefox 26 (не повезло).
Я попытался включить геолокацию в Firefox, но все равно не работает.
Я просмотрел несколько сайтов в Google и, наконец, понял, что в Firefox 26 и 27 обнаружена ошибка в определении геолокации.
Для тестирования функциональности вы можете запустить этот LIVE DEMO, который представляет собой простой JavaScript.
initialize();
function displayLocation(position) {
var cords = position.coords;
alert("displayLocation, lat='"+cords.latitude+"'; long='"+cords.longitude+"'");
}
function displayError(positionErr) {
alert("error");
}
function initialize() {
if (!(navigator.geolocation == 'undefined')) {
navigator.geolocation.getCurrentPosition(displayLocation, displayError, {
timeout: 10000
});
} else {
alert('Geolocation unsupported');
}
}
Кажется, примечание важно:
http://www.w3schools.com/html/html5_geolocation.asp
Поддержка браузера
Internet Explorer 9+, Firefox, Chrome, Safari и Opera поддерживают геолокацию.
Примечание: геолокация гораздо точнее для устройств с GPS, таких как iPhone.
Выполните пробный тест: http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation
-> На компьютере с использованием Firefox 26.0: ничего не произошло. Даже при совместном использовании положения (не подключено устройство GPS).
-> На смартфоне Android с помощью Firefox 27.0: получить широту и долготу от GPS
Кажется, что есть проблема с геолокации на Mozilla Firefox 24+ на основе
https://support.mozilla.org/en-US/questions/984520
Запустите Firefox с правами администратора (особенно в Windows).