Здравствуйте. Столкнулся со следующей проблемой. У меня есть код на JavaScript,
var xhttp = new XMLHttpRequest();
xhttp.open('GET', 'books.json', true);
xhttp.send(null);
if (xhttp.readyState == 4 && xhttp.status == 200) {
var res = eval('(' + xhttp.responseText + ')');
var r = function (index, tag) { return res.books[index][tag] }
author.innerHTML += r(3, 'author');
}
который должен выполяняться при нажатии кнопки на веб-странице. Однако, когда я нажимаю кнопку, ничего не выполняется. Тогда я лезу в отладчик и начинаю построчно прогонять этот код. И к концу прогона результат уже есть на экране. Какова причина того, что результат отладчика разнится с результатом? И как это исправить? Если что, данная проблема встречается на браузерах Mozila, Maxthon, IE.
Причина - то, что на момент выполнения скрипта DOM-элемент author еще не построен, а отладчик дает задержку и он успевает за это время построиться, нужно использовать window.load или просто разместить скрипт после элемента.
Еще одна проблема - стоит использовать getElementById, потому что не все браузеры получают элементы по id'ам автоматически.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости