- •Предисловие
- •Раздел 1. Технологическая база веб-систем
- •1.1. Интернет
- •1.2. Хостинг
- •Хостинг
- •Интернет-адресация
- •1.3. Классификация веб-технологий
- •1.4. Инструментарий разработчика
- •Локальные LAMP
- •Алгоритм создания своего сайта в «Денвере»
- •Редакторы скриптов
- •1.5. Проблемы несовместимости
- •Задачи для самоконтроля
- •Раздел 2. Гипертекстовый язык разметки (HTML)
- •2.1. Основные определения
- •2.2. Структура HTML-документа
- •Заголовок HTML-документа
- •Тело HTML-документа
- •Специальные символы
- •Экранная типографика
- •2.3. Гиперссылки
- •2.4. Фразовые элементы
- •2.5. Текстовые блоки
- •2.6. Мультимедийные объекты
- •2.7. Списки
- •2.8. Таблицы
- •2.9. Формы
- •2.10. Общие атрибуты
- •Задачи для самоконтроля
- •Раздел 3. Каскадные таблицы стилей (CSS)
- •3.1. Основные определения
- •Вид CSS-инструкции
- •Селекторы
- •Приоритеты способов визуализации
- •Оптимизация объявлений
- •Размеры
- •3.2. Включение CSS в HTML-документ
- •Внешние стили (external style sheets)
- •Таблицы стилей документа (document style sheets)
- •Подключение внешних стилей через директиву
- •Стили, подставляемые в строку (inline styles)
- •3.3. Шрифт
- •3.4. Текст
- •3.5. Цвет и фон
- •Правила визуализации цвета
- •Цвет текста
- •Управление фоном
- •3.6. Оформление блоков
- •3.7. Позиционирование элементов
- •Абсолютное позиционирование
- •Относительное позиционирование
- •Задачи для самоконтроля
- •4.1. Основные определения
- •Структура программ
- •4.2. Переменные и массивы
- •4.3. Операции
- •4.4. Операторы
- •Условный оператор
- •Операторы цикла
- •Оператор for
- •Оператор for…in
- •Оператор while
- •4.5. Функции
- •Декларация функции
- •Вызов функции
- •Оператор return
- •4.6. Включение JavaScript в HTML-документ
- •Расположение внутри страницы
- •Расположение внутри тега
- •Вынесение в отдельный файл
- •4.7. Объекты
- •Дерево объектов обозревателя Интернет
- •Объект window
- •Объект Date
- •Объект document
- •4.8. Модели документа DHTML и DOM
- •Модель документа DHTML
- •Модель документа DOM
- •Задачи для самоконтроля
- •Раздел 5. Серверные сценарии: языки SSI и PHP
- •5.1. Включения на стороне сервера SSI
- •Дата последней модификации файла
- •Вставка данных из внешнего файла
- •Работа с переменными
- •Условный оператор
- •5.2. Язык программирования PHP
- •Синтаксис
- •Шаблоны
- •Запись и чтение из файлов
- •Обработка HTML-форм
- •Передача данных в php-скрипт через ссылку
- •Задачи для самоконтроля
- •Раздел 6. Работа с базами данных: MySQL
- •6.1. Основы SQL
- •Вставка данных в таблицу
- •Запрос данных
- •Удаление записей из таблицы
- •Обновление записей в таблице
- •6.2. Управление базой данных через phpMyAdmin
- •Создание базы данных
- •Создание таблицы
- •Вставка данных
- •6.3. Создание собственного PHP-скрипта для управления базой данных
- •Задачи для самоконтроля
- •Раздел 7. Готовые веб-системы
- •7.1. Форумы
- •phpBB
- •Invision Power Board
- •7.2. Блоги
- •Wordpress
- •bBlog
- •7.3. Фотогалереи
- •Coppermine Photo Gallery
- •Gallery
- •jsImageBox
- •7.4. Каталоги ссылок
- •LinkExchanger
- •FairLinks
- •7.5. Cистемы управления документами и файловые архивы
- •KnowledgeTree
- •RW:Download
- •7.6. Статистика
- •CNStats
- •TrackSite
- •7.7. Интернет-магазины
- •OsCommerce
- •PrestaShop
- •7.8. Аукционы
- •Web Auction
- •7.9. Wiki
- •7.10. Системы управления контентом
- •Joomla!
- •Drupal
- •1C-Битрикс: Управление сайтом
- •7.11. Корпоративные порталы
- •LifeRay
- •1С-Битрикс: Корпоративный портал
- •Задача для самоконтроля
- •Заключение
- •Список рекомендуемой литературы
- •П.1.1. Гипертекстовая часть (index.html)
- •П.1.2. Каскадные таблицы стилей (common.css)
- •П.1.3. Результат
- •П.2.1. Проверка форм
- •Подключаемый скрипт test_form.js
- •Вызов функции в HTML-документе для любой формы
- •Вид после выявления ошибок
- •П.2.2. Меню-телепортатор
- •П.2.3. Смена изображения при наведении мыши
в модели DHTML эта задача в целом решается одной строкой и намного нагляднее, чем в модели DOM:
function replaceP(objectID){
// создаем новый элемент-абзац var par = document.createElement('p');
// присваиваем ему идентификатор заменяемого абзаца par.setAttribute ("id", objectID);
// наполняем текстом par.appendChild(document.createTextNode('Новый текст'));
//ищем в дереве нужный нам объект elem=document.getElementById(objectID);
//заменяем старый абзац на новый elem.parentNode.replaceChild(par, elem);
}
Конечно, и в модели DOM возможна замена одной строкой, но она работает только в том случае, если у элемента всего один потомок, который является текстовым узлом, а значит не может быть признана универсальным решением:
document.getElementById(objectID).childNodes[0].nodeValue = "Новый текст";
Задачи для самоконтроля
1.Написать универсальную функцию replaceBlock, которая заменяет текущий блочный элемент, на новый определенного типа, необязательно совпадающего с заменяемым, и поместить в него заданный текст.
2.Вставитьновый абзацмежду двумяужесуществующими.
3.После открытия нового окна визуализировать в нем всех детей тега <body> окна-родителя.
4.Реализовать изменение цвета заголовка каждые полсекунды, последовательно увеличивая количество красного, зеленого и синего компонентов цвета.
101
5.Найти готовую функцию и вставить ее в пример проверки формы (Приложение 2), которая определяет корректность ввода адреса электронной почты в форму.
102