Область видимости переменной JavaScript в функции геолокации - PullRequest
0 голосов
/ 03 февраля 2012

Я пытаюсь использовать javascript для получения геолокации пользователя, чтобы затем я мог использовать эту информацию в качестве параметра в другом разделе кода javascript, однако я не могу правильно определить область действия.код.Оповещение внутри функции успеха работает нормально, но если я пытаюсь получить доступ к var lat где-нибудь за пределами функции, я получаю неопределенное значение.Как мне исправить это?

var lat; var long;
function success(position) {
lat = position.coords.latitude;
long = position.coords.longitude;
alert(lat);
}

function error(msg) {

}

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(success, error);

} else {
  error('not supported');
}

1 Ответ

1 голос
/ 03 февраля 2012

Вы хотите, чтобы ваш код работал так:

navigator.geolocation.getCurrentPosition(success, error); 
alert("Your position is " + lat + ", " + long + ".");
// do some more stuff with lat and long

Но, success() еще не был вызван, поэтому lat все еще не определено. Вот для чего нужен ваш обработчик успеха. Весь код, который должен быть выполнен после того, как вы получили местоположение, попадает в обработчик успеха.Это будет работать:

navigator.geolocation.getCurrentPosition(function (position) {
    success(position);
    alert("Your position is " + lat + ", " + long + ".");
    // do some more stuff with lat and long
}, error);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...