Лекция 7 Стандартная объектная модель документа. Варианты DOM DOM уровня 0 поддерживает общие коллекции объектов документа (forms [ ], images [ ], anchors.

Презентация:



Advertisements
Похожие презентации
XML- технологии Лекция 6 Технология DOM. DOM DOM Document Object Model объектная модель документа, стандартизованная консорциумом W3C DOM программный.
Advertisements

Троицкий Д.И. Интернет-технологии1 BOM- И DOM-ОБЪЕКТНЫЕ МОДЕЛИ БРАУЗЕРА Лекция 12 Кафедра «Автоматизированные станочные системы» Dept. of Automated Manufacturing.
Работа с DOM-моделью и пользовательский интерфейс По материалам курса University of Washington
Язык программирования HTML. Цель урока: Получить представление об основных средствах языка HTML Научится пользоваться языком HTML Научится создавать Web.
4.3 Каскадные таблицы стилей. Каскадные таблицы стилей (Cascading Style Sheets, CSS) способ оформления страниц HTML, позволяющий с помощью параметров.
Cascading Style Sheets каскадные таблицы стилей CSS-код – это список инструкций для браузера, – как и где отображать элементы веб-страницы, написанный.
Каскадные таблицы стилей CSS. Стиль – набор параметров, задающий внешнее представление объекта. Таблица стилей – это инструмент языка html, предоставляющий.
1 Cascading Style Sheets каскадные таблицы стилей 2.
Введение в CSS. Базовый синтаксис CSS селектор { свойство1: значение; свойство2: значение; } селектор некоторое имя стиля, для которого добавляются параметры.
Текстовые редакторы Работу выполнил учащийся 9a класса Матвеев Сергей Руководитель: учитель информатики Ильиных О.А.
Интерфейс текстового процессора Microsoft Word. С помощью ленты можно быстро находить необходимые команды (элементы управления: кнопки, раскрывающиеся.
HTML – язык гипертекстовой разметки документов (Hyper Text Markup Language)
Oсновы HTML Hyper Text Markup Language. Идеологи Тим Бернерс-Ли британский учёный (1989) Тед Нельсон - американский социолог, изобретатель гипертекста.
Интернет- технологии МИИГаИК. Указание XML-документов в ориентире на будущее
СИНТАКСИС И УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ JAVASCRIPT. Вставка скрипта. 1. В коде HTML-страницы … 2. Внешний файл.
Таблицы и фреймы По материалам курса University of Washington.
XPath выступает в роли подъязыка преобразований XSLT и XPointer. Выражение XPath используется для манипуляции строками, в числовых выражениях, а также.
Работа с таблицами 8 класс. Таблицы используются при создании текстовых документов, содержащих большое количество однотипных названий, числовых данных.
Выполнение запросов, создание и редактирование отчета MS Access.
Объектная модель документа. Динамический HTML Делает страницу интерактивной Вместо дополнительных запросов к серверу на действия пользователя реагирует.
Транксрипт:

Лекция 7 Стандартная объектная модель документа

Варианты DOM DOM уровня 0 поддерживает общие коллекции объектов документа (forms [ ], images [ ], anchors [ ], links [ ] и applets [ ] ) DOM уровня 1. Обеспечивает возможность работы со всеми элементами документа посредством стандартного набора функций. DOM уровня 2. Обеспечивает более совершенные возможности доступа к эле­ментам страницы, прежде всего, связанным с XML, путем объединения моде­лей DOM уровня 0 и уровня 1 и добавления возможностей доступа к таблицам стилей для работы с ними. DOM уровня 3. Состоит из шести различных спецификаций: 1. DOM Level 3 Core; 2. DOM Level 3 Load and Save; 3. DOM Level 3 XPath; 4. DOM Level 3 Views and Formatting; 5. DOM Level 3 Requirements; 6. DOM Level 3 Validation.

Дерево: документ Проверка DOM Заголовок примера Это абзац текста для примера Yahoo!

Дерево: представление

Типы узлов DOM HTML Номер типа узла Тип ОписаниеПример 1 Элемент Элемент HTML или XML... 2 Атрибут Атрибут элемента HTML или XML align="center" 3 Текст Фрагмент текста, заключенного в элемент HTML или XML Это фрагмент текста! 8 Комментарий Комментарий HTML 9 Документ Корневой объект документа, т.е. элемент, находящийся в самом верху иерархии дерева анализа 10 Тип документа Определение типа документа

Отношения узлов в дереве Пример Это абзац текста для примера Поддерево

Пример документа Проверка DOM Заголовок примера Это абзац текста для примера Yahoo!

Доступ к элементу документа по Id Пример var elem = document.getElementById("p1"); alert("Имя узла: "+elem.nodeName+"\n Тип узла: "+elem.nodeType+"\n Значение: "+elem.nodeValue);

Свойства Node, ч. 1 Свойство объекта Node Описание nodeName Содержит имя узла nodeValue Содержит имеющееся в узле значение. Применимо, как правило, только к узлам текста nodeType Хранит числовое значение, соответствующее типу узла parentNode Ссылка на родительский узел данного объекта, если таковой существует childNodes Обеспечивает доступ к списку дочерних узлов firstChild Ссылка на первый дочерний узел данного элемента, если таковые существуют

Свойства Node, ч. 2 Свойство объекта Node Описание lastChild Ссылка на последний дочерний узел данного элемента, если таковые существуют previousSibling Ссылка на предыдущий сестринский узел данного узла (когда родительский узел имеет несколько дочерних) nextSibling Ссылка на следующий сестринский узел данного узла (когда родительский узел имеет несколько дочерних) attributes Список атрибутов данного элемента ownerDocument Указывает HTML-объект document, в котором содержится данный элемент

Пример движения по дереву, ч. 1 Заголовок примера Это абзац текста для примера Yahoo! <!-- function nodeStatus(node){ var temp = ""; temp += "Имя узла: "+node.nodeName+"\n"; temp += "Тип узла: "+node.nodeType+"\n"; temp += "Значение: "+node.nodeValue+"\n\n";

Пример движения по дереву, ч. 2 return temp; } var currentElement = document.getElementById('p1'); var msg = nodeStatus(currentElement); currentElement = currentElement.firstChild; msg += nodeStatus(currentElement); currentElement = currentElement.nextSibling; // элемент EM msg += nodeStatus(currentElement); currentElement = currentElement.firstChild; msg += nodeStatus(currentElement); currentElement = currentElement.parentNode; // элементу EM msg += nodeStatus(currentElement); currentElement = currentElement.previousSibling; //1 msg += nodeStatus(currentElement); currentElement = currentElement.parentNode; // P msg += nodeStatus(currentElement); currentElement = currentElement.lastChild; // 3 msg += nodeStatus(currentElement); alert(msg); //>

Проверка существования узлов Проверка существования дочерних узлов if (current.hasChildNodes()) current = current.firstChild; Проверка существования сестринских или родительских узлов if (current.parentNode) current = current.parentNode;

Коллекция элементов с одним именем Пример создания tagList = document.getElementsByName('myTag'); Пример использования tagList = document.getElementsByName('myTag'); for (var i = 0; i < tagList.length; i++) alert(tagList.item(i).nodeName); или: tagList = document.getElementsByName('myTag'); for (var i = 0; i < tagList.length; i++) alert(tagList[i].nodeName);

Корневые узлы дерева Пункты для начала обхода дерева: document.documentElement document.body document.doctype

Коллекции DOM 0 Коллекция Описание document.anchors[] коллекция всех анкеров на странице, определенных с помощью document.applets[] коллекция всех аплетов java на странице document.forms[] коллекция всех дескрипторов на странице document.images[] коллекция всех изображений на странице, определенных с помощью дескрип­торов document.links[] коллекция всех ссылок на странице, определенных с помощью

Обобщенные коллекции элементов Коллекция однотипных элементов в дереве документа var pd = document.getElementsByTagName("p"); var pd = document.body.getElementsByTagName("p"); Коллекция однотипных элементов в поддереве документа var elem = document.getElementById("myid"); var pd = elem.getElementsByTagName("p");

Создание узлов в DOM Метод ОписаниеПример createAttribute (имя) Создает для элемента атрибут с именем, указанным строкой имя. myAlign = document.createAttribute ("align"); createComment (строка) Создает текстовый комментарий HTML/ XML вида myComment = document.createComment ("Это комментарий"); createDocumentFr agment() Создает фрагмент документа myFragment = document.createDocument Fragment(); myFragment.appendChild (temp); createElement (тип) Создает элемент, тип которого задается значением строкового параметра тип myHeading = document.createElement ("h1"); createTextNode (строка) Создает узел текста, содержащий значение параметра строка newText = document.createTextNode ("Новый текст");

Вставка и добавление узлов в документ Пример добавления узла: current = document.getElementById('p1'); current.appendChild(newNode);

Добавление узлов (пример), ч. 1 Проверка D0M <!-- function makeNode(str) { var newParagraph = document.createElement("p"); var newText = document.createTextNode(str); newParagraph.appendChild(newText) ; return newParagraph; }

Добавление узлов (пример), ч. 2 function appendBefore(nodeld, str) { var node = document.getElementById(nodeld) ; var newNode = makeNode(str); if(node.parentNode) node.parentNode.insertBefore(newNode,node); } function insertWithin(nodeld, str) { var node = document.getElementById(nodeld); var newNode = makeNode(str); node.appendChild(newNode); } function appendAfter(nodeld, str) { var node = document.getElementById(nodeld); var newNode = makeNode(str); if (node.parentNode) if (node.nextSibling) node.parentNode.insertBefore(newNode, node.nextSibling); else node.parentNode.appendChild(newNode); }

Добавление узлов (пример), ч. 3 DOM: вставка и добавление <input type="button" value="до" onclick="appendBefore('innerDiv',document.forml.fieldl.value); " /> <input type="button" value="вовнутрь" onclick="insertWithin('innerDiv',document.forml.fieldl.value) ; " /> <input type="button" value="после" onclick="appendAfter('innerDiv',document.forml.fieldl.value);" />

Клонирование узлов, ч. 1 TODO supply a title Это проверка клонирования

Клонирование узлов, ч. 2 function clone(nodeId, deep){ var toClone = document.getElementById(nodeId); var clonedNode = toClone.cloneNode(deep); var insertPoint = document.getElementById('ins'); insertPoint.appendChild(clonedNode); } <input type="button" value="клонирование" onclick="clone('pi', false);" /> <input type="button" value="Глубокое клонирование" onclick="clone('pi', true);" />

Удаление и замена узлов, ч. 1 TODO supply a title function doDelete(){ var deletePoint = document.getElementById('toDelete'); if (deletePoint.hasChildNodes()) deletePoint.removeChild(deletePoint.lastChild); } function doReplace() { var replace = document.getElementById('toReplace'); var newNode = document.createElement("strong"); var newText = document.createTextNode("элемент 'strong'");

Удаление и замена узлов, ч. 2 newNode.appendChild(newText); replace.parentNode.replaceChild(newNode, replace); } Это абзац Это другой абзац для удаления Это еще один абзац Этот абзац содержит элeмeнт 'em'.

Методы для изменения узлов Метод Описание appendData (строка) Этот метод добавляет текст, заданный аргументом строка, в конец узла текста deleteData (смещение, число) Удаляет указанное число символов, начиная с позиции, указанной значением смещение insertData( смещение, строка) Вставляет текст, заданный аргументом строка, начиная с позиции, указанной значением смещение replaceData (смещение, число, строка) Замещает указанное число символов в узле текста соответствующими символами аргумента строка, начиная с позиции, указанной значением смещение splitText (смещение) Разделяет узел текста на две части в позиции, указанной значением смещение. Возвращает правую часть результата разделения в виде нового узла текста, левая часть остается в исходном узле substringData (смещение, число) Возвращает строку текста, содержащую указанное число символов строки содержимого текстового узла, начиная с позиции, указанной значением смещение

Изменение узлов (пример), ч. 1 TODO supply a title Это проверка var textNode = document.getElementById('pi').firstChild;

Изменение узлов (пример), ч. 2

Методы для работы с атрибутами getAttribute(имя) setAttribute (имя Атрибута, значение) removeAttribute (имя Атрибута)

Работа с атрибутами (пример), ч.1 TODO supply a title Измените мои атрибуты! theElement = document.getElementById('test'); Цвет:

Работа с атрибутами (пример), ч.2 Размер: <select onchange="theElement.setAttribute('size', this.options[this.selectedIndex].text);"> document.testform.color.value = theElement.getAttribute ('color');

Связь DOM и атрибутов дескрипторов Пример оформления параграфа: <р align="left | center | right | justify" id="уникальный идентификатор" class="имя класса" style= "правила стиля" title="текст подсказки" lang="код языка" dir="направление текста: LTR или RTL"> содержимое абзаца Соответствующие атрибуты HTMLParagraphElement: align id className title lang dir

Доступ к свойству style CSS Пример дескриптора с атрибутом style: проверка Доступ к значениям style: theElement = document.getElementById("myParagraph "); theElement.style.color = "green"; theElement.style.fontStyle= "italic" theElement.style.textDecoration= "overline"

Установка CSS-классов Пример CSS-классов.view1 {color: black; background- color: yellow; font-style: normal;}.view2 {background-color: orange; font-style: italic;} проверка Применение CSS-классов theElement = document.getElementById("myp"); theElement.className = "view2";

Другие модели DHTML Свойство innerHTML от Microsoft Это абзац текста для примера var theElement = document.getElementById("p1"); alert(theElement.innerHTML); Аналогичные свойства: innerText outerText outerHTML