Reydan46
@Reydan46
Программист

Как в JavaScript загрузить страницу в переменную, дожидаясь полной загрузки?

Как в javascript'e загрузить DOM страницы по URL в переменную (дожидаясь полной загрузки)

Пробовал
res=$.ajax(URL);
Но не знаю как заставить дождаться его полной загрузки страницы (Вроде как readyState = 4)
  • Вопрос задан
  • 1114 просмотров
Пригласить эксперта
Ответы на вопрос 3
@karminski
Senior React.JS Developer
Если я вас правильно понял, то достаточно изучить функцию Ajax на сайте jQuery.
api.jquery.com/jquery.ajax

var res;
$.ajax({
    url: URL,
    success: function (response) {
        res = response;
    }
})
Ответ написан
smolyakov770
@smolyakov770
Веб Дизайнер Верстальщик
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
И нужного поля response.responseJSON.d нет, так как страница не догрузилась до конца. Но если через секунду проверить этот же объект, то поле уже будет (как и readyState: 4)

Просто вы не умеете в асинхронность.
Читайте документацию api.jquery.com/jquery.ajax
метод success срабатывает уже после того, как получен ответ, и на момент его срабатывания в переменной уже содержится всё что нужно. Но вы пытаетесь обращаться к переменной еще до того как пришел ответ.

Что делать? Читать учебник, про асинхронность, коллбэки и промисы.
console.log('начало')
var res;
$.ajax({
    url: URL,
    success: function (response) {
        console.log('данные получены', response)
        res = response;
    }
})

console.log('данные еще не получены', res)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы