Здравствуйте. Столкнулся со следующей проблемой. У меня есть код на 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'ам автоматически.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем приветВпервые сталкиваюсь с работой JS в симфони
Как добавить инстаграм (instagram) в список значков?
Есть кнопка, которая по клику обновляет содержимое блока с id="dle-content"Как сделать, чтобы этот скрипт срабатывал каждые 5 минут, а не по клику?
После потери фокуса, если поле заполнено но невалидно почему то выводятся сразу два одинаковых сообщения: Ссылка не введена