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).

Другие вопросы по тегам