0

Есть код для определения местоположения. Город выводится алертом. Как записать город в переменную, чтобы можно было использовать в других скриптах на странице? С js практически не знаком.

$(function(){
ymaps.ready(init);
function init() {
ymaps.geolocation.get({autoReverseGeocode: true, provider:"browser"})
.then(function (res)  {
var g = res.geoObjects.get(0);
alert(g.getLocalities()[0]);
})
.catch(function (err) {
console.log('Не удалось установить местоположение', err);
});
}
});
kkott
  • 41

1 Answers1

0
var data;//объявляем глобальную переменную
function set(value) {
    data = value;
}
$(function () {
    ymaps.ready(init);
    function init() {
        ymaps.geolocation.get({autoReverseGeocode: true, provider: "browser"}).then(function (res) {
            var g = res.geoObjects.get(0);
            setTimeout(set(g.getLocalities()[0]), 3000);//заносим значение
            alert(g.getLocalities()[0]);
        }).catch(function (err) {
            console.log('Не удалось установить местоположение', err);
        });
    }
});

Таким образом в переменной data Будет храниться позиция и она будет в глобальной области видимости. Только учтите, вы должны объявить data В самой первой области видимости, вне функций и блоков кода.

  • не получается.

    var data;//объявляем глобальную переменную $(function(){ ymaps.ready(init); function init() { ymaps.geolocation.get({autoReverseGeocode: true, provider:"browser"}).then(function (res) { var g = res.geoObjects.get(0); data = g.getLocalities()[0];//заносим значение alert(g.getLocalities()[0]); }).catch(function (err) { console.log('Не удалось установить местоположение', err); }); } alert(data); выводит undefined

    – kkott Apr 27 '18 at 20:45
  • Добавьте полный код, пожалуйста. – Евгений Иванов Apr 27 '18 at 21:15
  • 1
    https://ru.stackoverflow.com/a/554291/176064 – vp_arth Apr 27 '18 at 21:21
  • Интересно к прочтению, благодарю. :) – Евгений Иванов Apr 27 '18 at 21:24
  • @ЕвгенийИванов http://jsfiddle.net/Gh6AT/65/ – kkott Apr 27 '18 at 21:30
  • @kkott vp_arth дал ссылку на очень обширный ответ. – Евгений Иванов Apr 27 '18 at 21:37
  • @ЕвгенийИванов спасибо, но я ничего оттуда не понял. с js не знаком. – kkott Apr 27 '18 at 21:42
  • Я обновил ответ. @kkott – Евгений Иванов Apr 27 '18 at 21:51
  • @kkott только тестируйте у себя на машине потому что на jsfiddle не выполяется ничего в функции где мы хотели присвоение сделать. – Евгений Иванов Apr 28 '18 at 00:20
  • @ЕвгенийИванов спасибо, но ничего не поменялось. – kkott Apr 28 '18 at 08:35
  • @ЕвгенийИванов, понял в чем дело. Город определяется через несколько секунд после загрузки сайта, а переменную проверяется сразу. – kkott Apr 28 '18 at 08:39
  • @kkott обновил ответ, тепер мы просто ждем 3 секунды а потом заносим данные в переменную. – Евгений Иванов Apr 28 '18 at 12:03