Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

// Обработчик события onpopstate, восстанавливающий состояние приложения,

function popState(event) {

if (event.state) { // Если имеется объект состояния, восстановить его

// Обратите внимание, что event.state является полной копией

// сохраненного объекта состояния, поэтому мы можем изменять его,

// не опасаясь изменить сохраненное значение.

state = event.state; // Восстановить состояние

displayCstate); // Отобразить восстановленное состояние

}

else {

// Когда страница загружается впервые, событие "popstate" поступает

// без объекта состояния. Заменить значение null действительным

// состоянием: смотрите комментарий в функции newgame.

// Нет необходимости вызывать display здесь.

history.replaceState(state, "", "#guess" + state.guessnum);

}

};

// Этот обработчик событий вызывается всякий раз, когда пользователь вводит число.

// Он обновляет состояние игры, сохраняет и отображает его.

function handle6uess {

// Извлечь число из поля ввода

var g = parseInt(this.value);

// Если это число и оно попадает в требуемый диапазон

if ((g > state.low) && (g < state.high)) {

// Обновить объект состояния для этой попытки

if (g < state.n)

state.low = g;

else

if (g > state.n) state.high = g;

state.guess = g;

state.guessnum++;

// Сохранить новое состояние в истории посещений

save(state);

// Изменить документ в ответ на попытку пользователя

display(state);

}

else { // Ошибочная попытка: не сохранять новое состояние

alert("Please enter a number greater than " + state.low +

" and less than " + state.high);

}

}

// Изменяет документ, отображая текущее состояние игры,

function display(state) {

// Отобразить заголовок документа

ui.heading.innerHTML = document.title =

"I'm thinking of a number between " + state.low +

" and " + state.high + "."

// Отобразить диапазон чисел с помощью таблицы

ui.low.style.width = state.low + "%";

ui.mid.style.width = (state.high-state.low) + "%";

ui.high.style.width = (100-state.high) + "%";

// Сделать поле ввода видимым, очистить его и установить фокус ввода

  • Читать дальше
  • 1
  • ...
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: