Выбрать главу

    if (answer) window.location = " http://google.com ";

  }

  // Запустить функцию, объявленную выше, через 1 минуту (60000 миллисекунд).

  setTimeout(moveon, 60000);

</script>

Обратите внимание, что примеры программного кода на клиентском JavaScript в этом разделе длиннее примеров на базовом языке, которые мы видели выше в этой главе. Эти примеры не предназначены для ввода в окне консоли Firebug (или в другом подобном инструменте). Однако вы можете вставлять их в HTML-файлы и затем запускать, открывая файлы в веб-броузере. Так, пример, приведенный выше, является самостоятельным HTML-файлом.

Глава 15 «Работа с документами» переходит к исследованию фактической работы, выполняемой с помощью JavaScript на стороне клиента, - управлению содержимым документа HTML. Она покажет вам, как выбирать определенные элементы HTML из документов, как устанавливать HTML-атрибуты этих элементов, как изменять содержимое элементов и как добавлять в документ новые элементы. Следующая функция демонстрирует некоторые из простейших приемов поиска и изменения элементов документа:

// Выводит сообщение в специальной области для отладочных сообщений внутри документа.

// Если документ не содержит такой области, она создается.

function debug(msg) {

  // Отыскать область для отладочных сообщений в документе, поиск по HTML-атрибуту id

  var log = document.getElementByld("debuglog");

  // Если элемент с атрибутом id="debuglog" отсутствует, создать его.

  if (!log) {

    log = document.createElementC'div"); // Создать элемент <div>

    log.id = "debuglog"; // Установить атрибут id

    log.innerHTML = "<h1>Debug Log</h1>"; // Начальное содержимое

    document.body.appendChild(log); // Добавить в конец документа

  }

  // Теперь обернуть сообщение в теги <рге> и добавить в элемент log

  var рге = document.createElement("pre"); // Создать тег <рге>

  var text = document.createTextNode(msg); // Обернуть msg в текстовый узел

  pre.appendChild(text); // Добавить текст в тег <рге>

  log.appendChild(pre);  // Добавить <рге> в элемент log

}

Глава 15 демонстрирует, как с помощью JavaScript можно управлять HTML-элементами, которые определяют содержимое веб-страниц. Глава 16 «Каскадные таблицы стилей» демонстрирует, как с помощью JavaScript можно управлять каскадными таблицами стилей CSS, определяющими представление содержимого. Чаще всего для этой цели используется атрибут HTML-элементов style или class:

function hide(e, reflow) { // Скрывает элемент e, изменяя его стиль

  if (reflow) {// Если 2-й аргумент true,

    e.style.display = "none" // скрыть элемент и использовать

  } // занимаемое им место

  else { // Иначе

    e.style.visibility = "hidden"// сделать е невидимым, но оставить

  } // занимаемое им место пустым

}

function highlight(е) { // Выделяет е, устанавливая класс CSS

  // Просто добавляет или переопределяет HTML-атрибут class.

  // Предполагается, что таблица стилей CSS уже содержит определение класса "hilite"