Сбой функции текущего местоположения - PullRequest
0 голосов
/ 17 января 2011

У меня есть функция, которая получает текущее местоположение зрителя. Тем не менее, я пытаюсь сделать так, чтобы он снова и снова получал текущее местоположение зрителя каждый раз, когда вызывается функция. Причина, по которой я хочу это сделать, заключается в том, что моя веб-страница пытается запросить текущее местоположение при загрузке. Если зритель говорит «нет», просматривает мою веб-страницу и передумывает, мне нужно, чтобы он мог повторить попытку, не перезагружая страницу. Вот что у меня так далеко:

function getCurrentLocation(callback) {
    if ( navigator.geolocation ) {
         if ( typeof(locationId) == 'undefined' || locationId <= 0 ) navigator.geolocation.clearWatch(locationId);
         locationId = navigator.geolocation.getCurrentPosition(function(position) {
          currLocation = position.coords;
          console.log('navigator - success');
          if ( typeof(callback) != 'undefined' ) callback();
         },function(){
          console.log('navigator - fail');
          if ( typeof(callback) != 'undefined' ) callback();
         });
        } else if (google.gears ) {
         var geo = google.gears.factory.create('beta.geolocation');
         if ( typeof(locationId) == 'undefined' || locationId <= 0 ) geo.clearWatch(locationId);
         locationId = geo.getCurrentPosition(function(position){
          currLocation = position;
          console.log('gears - success');
          if ( typeof(callback) != 'undefined' ) callback();
         }, function(){
          console.log('gears - fail');
          if ( typeof(callback) != 'undefined' ) callback();
         });
        }
     return currLocation;
}

По какой-то странной причине после нажатия кнопки «Не разрешать» навигатор всегда вызывает функцию сбоя и никогда не пытается снова запросить текущее местоположение. Как мне заставить его спросить снова?

...