DOM — Методы и свойства
HTML DOM методы — это действия, которые вы можете выполнять (с элементами HTML).
HTML DOM свойства — это значения (элементов HTML), которые вы можете устанавливать или изменять.
Программный интерфейс DOM
Получить доступ к HTML DOM можно при помощи JavaScript (и других языков программирования).
В DOM все HTML элементы определены как объекты.
Программный интерфейс — это свойства и методы каждого объекта.
Свойство — это значение, которые вы можете прочитать или установить (вроде изменения содержимого элемента HTML).
Метод — это действие, которое вы можете выполнить (вроде добавления или удаления элемента HTML).
В следующем примере изменяется содержимое (innerHTML) элемента с атрибутом id=»demo»:
В предыдущем примере getElementById – это метод, а innerHTML – свойство.
Метод getElementById
Самый частый способ получить доступ к элементу HTML – это использовать идентификатор id элемента.
В предыдущем примере метод getElementById использует id=»demo», чтобы найти нужный элемент.
Свойство innerHTML
Самый простой способ прочитать содержимое элемента — это воспользоваться свойством innerHTML.
Свойство innerHTML полезно тем, что оно позволяет прочитать или изменить содержимое любого элемента HTML, включая и .
Что является свойством объекта входящего в dom
Главная / Лекции / Программное обеспечение компьютерных сетей
Большинство свойств объектов соответствуют параметрам представляемых ими элементов html документа и имеют такие же имена, что и имена параметров.
В сценарии можно получить значение интересующих параметров элемента или наоборот изменить их установку.
Динамическое изменение свойств объектов и соответственно представляемых ими элементов html является основной концепцией DHTML.
Имена некоторых свойств объектов отличаются от имен параметров, но обычно достаточно близки к ним.
Пример: свойство className соответствует параметру class. Подобное несоответствие вызвано конфликтами с зарезервированными ключевыми словами основных языков сценария.
В DOM существует свойство, представляющее целое множество свойств объекта. По существу такие свойства являются наборами и к ним применима описанная выше технология работы с наборами. Свойство style объекта — одно из таких свойств. Оно содержит все свойства CSS, применимые к соответствующему элементу и которые можно задавать в параметре style тэга элемента.
Некоторые свойства не соответствуют никаким параметрам тэгов. Эти свойства представляют дополнительную информацию об элементе и обычно являются свойствами только для чтения.
Пример: свойство tagName — не соответствует никакому параметру и предоставляет информацию о типе тэга элемента.
sourceIndex — его значение — индекс элемента в наборе all.
- getAttribute() — получить значение параметра элемента без обращения к его свойствам
- setAttribute() — установить значение параметра элемента без обращения к его свойствам
- removeAttribute() — удалить параметр
Пример:
alert(«Значение параметра ALIGN равно: «+p1.getAttribute(‘align’));
p1.setAttribute(‘align’,’right’);
alert(«Значение параметра ALIGN равно: «+p1.getAttribute(‘align’));
p1.removeAttribute(‘align’);
(«Значение параметра ALIGN равно: «+p1.getAttribute(‘align’));
Фрагмент сценария использует все 3 метода для получения и установки значения параметра ALIGN объекта p1, а также для удаления этого параметра из тэга элемента, соответствующего объекту p1.
Если исходно объект p1 будет соответствовать абзацу с параметром ALIGN=center, то при выдаче первого сообщения в фрагменте будет указано CENTER, в следующем — right, в последнем — будет выведена пустая строка (значение не определено).
В соответствии с изменением значения параметра ALIGN будет изменяться и отображение абзаца в окне браузера. При удалении параметра, абзац по умолчанию сдвинется влево (left).
Иногда возникает необходимость показать в окне браузера часть документа, расположенного достаточно далеко от того места страницы, где в данный момент находится читатель. Обычно на страницу помещают ссылку, по которой читатель сможет осуществить переход.
Метод scrollIntoView() элемента позволяет выполнить процедуру перехода из сценария. Метод прокручивает содержимое окна браузера, чтобы указанный элемент оказался внизу или вверху окна.
Пример: var myH1=document.all.tags['H1']; if (myH1.length>0) myH1[2].scrollIntoView(true);
- innerHTML
- innerText
- outerHTML
- outerText
Пример: contents = p1.outerText
Этот оператор присвоит переменной строку, являющуюся текстом абзаца p1.
Абзац в документе определен следующим образом:
В блоковый элемент, каким является абзац, можно добавлять встраиваемые элементы и даже другие блоковые элементы , как только что включенное изображение.
В результате выполнения оператора присваивания переменная contents будет содержать строку с текстом.
Если в операторе присваивания заменить свойство outerText на outerHTML, то переменная contents будет содержать полное содержание абзаца на языке html со всеми входящими тэгами, параметрами и их значениями.
4.4. Событийная модель.
В DOM DHTML с каждым элементом страницы можно связать определенные действия пользователя: щелчок мышью, нажатие клавиатуры и т.д. Эта технология основана на фундаментальном понятии события в ОС с графическим интерфейсом пользователя.
Каждое действие пользователя является причиной возникновения сообщения в ОС, которая представляется объектом в DOM DHTML.
Свойства объектов событий можно использовать во встраиваемых сценариях для получения информации о событиях. При возникновении любого события динамически создается свойство event объекта window, входящего в DOM и представляющего окно браузера. Это свойство и является объектом, соответствующим сгенерированному событию.
- Происходит действие пользователя или возникает условие, которое возбуждает событие.
- В тот час же корректируется объект event, чтобы отразить параметры возникшего события.
- Событие генерируется — это и есть истинное сообщение о возникшем событии.
- Вызов обработчика событий элемента источника, который выполняет определенные программистом действия и завершает свою работу.
- Событие передается вверх по иерархии объектов (bubble up) и вызывается обработчик события объекта, являющегося родителем объекта источника события. Это всплытие вверх по иерархии объектов продолжается, пока не будет достигнут самый верх иерархии — объект window или обработчик события какого-либо объекта не аннулирует событие.
- Выполняются заключительные действия по умолчанию, если такие определены, но при условии, что событие не было аннулировано.
< html>< head>< title>Всплывание событий < /title> < /head> < body onclick="alert('Не надо щелкать!')">< h1 >Привет! < /h1>< p >Это простой пример, < b >ну очень простой < /b>пример. < /p> < /body>< /html>
В этом примере щелчки кнопкой мыши на всех элементах страницы обрабатываются централизованно обработчиком событий элемента body, который является родителем всех элементов страницы.
Если какому-нибудь элементу добавить собственный обработчик событий, то будут выполнены две процедуры: самого объекта и элемента родителя.
Объект event имеет свойство cancelBubble, которое позволяет аннулировать событие, если установить его значение равным true. После этого соответствующее событие не существует и обработчики этого события для всех расположенных выше элементов не вызываются.
Аннулирование события
Привет!
Это простой пример, ну очень простой пример.
4.5. Объект event.
Объект event создается автоматически всякий раз, когда возникает какое-либо событие. Этот объект не зависит от используемого языка сценария. Обращение к объекту event для получения достоверной информации о событии является предпочтительным способом.
Каждое событие характеризуется параметрами, которые передаются в сценарии через свойства объекта event.
Существуют параметры, общие для всех типов событий (например, координаты курсора мыши в окне браузера) и специфические для определенного события (код нажатой клавиши для событий клавиатуры).
Свойства объекта event, как и сам он являются динамическими и создаются в зависимости от типа произошедшего события.
Свойство srcElement определяет элемент документа, явившийся источником события.
cancelBubble — аннулирует событие.
returnValue — возвращает true/false после завершения выполнения процедуры обработки события. При передаче события вверх по иерархии, значение этого свойства можно использовать для альтернативной обработки события.
4.6. DOM в MS IE5.0.
- перемещать часть структуры документа в другое место, не разрушая и не создавая ее заново
- создавать новые элементы и присоединять их к структуре документа в любом его месте
- организовать и манипулировать новыми или существующими ветвями структуры фрагмента документа для помещения объектов в структурное дерево документа
< table > < tr>< td>ячейка 1 первого ряда < /td>< td>ячейка 2 первого ряда < /td> < /tr> < tr>< td>ячейка 1 второго ряда < /td>< td>ячейка 2 второго ряда < /td> < /tr> < tr style="background-color:#cfcfcf">< td>Этот ряд перемещаем < /td>< td>Этот ряд перемещаем < /td> < /tr> < /table>function fncInterchange(row)
Задана таблица из 3-х рядов. Необходимо переместить последний ряд на место предшествующего. Сценарий ориентирован на DOM 4.0. Переменная rowMove сохраняет индекс перемещаемого ряда, передаваемый в качестве индекса. Переменные rowMove_cell1 и rowMove_cell2 хранят содержимое двух ячеек перемещаемого ряда. После этих действий ряд удаляется методом rowDelete объекта table.
В таблицу вставляется новый ряд перед рядом, предшествующим удаленному (номер строки в rowMove уменьшается на 1). Последние операторы функции добавляют две ячейки в новый ряд и помещают в них содержимое соответствующих ячеек удаленного ряда.
В объектной модели документа IE 5.0 функция изменяется следующим образом:
function fncInterchange(row)
Методом swapNode можно просто поменять местами узлы в структуре документа.
Если у вас есть программы, предложения или замечания — пишите: chemisk@mail.ru
Ответы WEB 2
Долгая загрузка . Особенность таблиц такова, что пока последнее слово в самом низу таблицы не загрузится, на экране содержимое ячеек отображаться не будет. Браузеры используют такой подход, чтобы получить всю информацию о таблице для правильного форматирования ее содержимого. Но если таблица велика по высоте, может пройти достаточно много времени, прежде чем мы увидим нужную информацию. Существуют и способы обхода этого свойства, в частности, разбиение одной большой таблицы на несколько таблиц поменьше, а также использование стилевого свойства table-layout. Громоздкий код . Таблицы содержат сложную иерархическую структуру вложенных тегов, которая увеличивает объем кода, и повышает сложность изменения отдельных параметров. В некоторых случаях для достижения желаемого результата приходится вкладывать одну таблицу внутрь другой, а это также влияет на размер кода, который не принимает непосредственного участия в отображении веб-страницы. Плохая индексация поисковиками . За счет того, что текст располагается в отдельных ячейках таблицы, в коде он может находиться достаточно далеко друг от друга. Такая раздробленность информации, а также значительная вложенность тегов затрудняет правильное индексирование страницы поисковыми системами. Как результат документ не попадает в первую десятку выдачи запроса по ключевым словам, хотя вполне может и заслуживать это. Несоответствие стандартам. В последнее время стандарты HTML и CSS прочно засели в умах вебразработчиков. Этому способствует развитие XHTML и XML, которые более «жестко» относятся к коду документа, появление новых версий браузеров, придерживающихся спецификации, и мода на верстку слоями. Что же говорит спецификация относительно таблиц? А говорит она, что таблицы в первую и последнюю очередь нужны для размещения табличных данных. Все остальные способы использования таблиц осуждаются. Невозможность наложения слоев . Таблицы нельзя наложить друг на друга, что создает определенные трудности при верстке сложных по дизайну страниц. Трудности при верстке сложных страниц. Табличная верстка страниц сложного дизайна приводит к появлению множества вложенных таблиц. Рост количества таблиц повышает шанс возникновения ошибок при верстке, увеличивает размер документов и снижает скорость загрузки файлов. Блочная верстка (верстка слоями) Ещё одним направлением в верстке является так называемая блочная верстка, реализуемая с помощью тегов
. Ее еще называют версткой при помощи слоев. Видимо это вызвано тем обстоятельством, что блоки
часто вложены друг в друга и образуют своего рода «слои». Но я буду дальше придерживаться термина «блочная верстка». Блочная верстка постепенно заменяет табличную, хотя все еще не утихают споры о том, какой из этих двух методов предпочтительнее. Сразу следует отметить, что этот спор касается только того случая, когда таблицы используются для верстки. Если дело касается представления на странице табличных данных, то сомнений не возникает, ибо таблицы именно для этой цели и предназначены. И в этой роли они занимают свое законное место на страницах сайтов. Преимущества и недостатки блочной верстки Блочная верстка отлично связывается со стилями. Все свойства блоков задаются в таблице стилей, что позволяет более полно реализовать принцип разделения содержимого и оформления. Код при этом получается более компактным, чем при табличной верстке, к тому же поисковые системы его лучше индексируют. Слои-блоки можно накладывать друг на друга , что облегчает расположение элементов на веб-странице. Более быстрая загрузка страниц с блочной версткой по сравнению со страницами табличной верстки. Возможность расположения в коде значимых слоев (например, с текстовым содержимым) перед другими слоями, которые визуально находятся на странице выше значимого слоя. Это свойство облегчает индексацию страниц с блочной версткой поисковыми роботами. Есть у блочной верстки и свои отрицательные стороны. При ее применении труднее обеспечить одинаковый вид страниц в разных браузерах, поскольку не все браузеры в равной мере придерживаются спецификаций и стандартов. Но браузеры прогрессируют в направлении полной поддержки различных спецификаций (HTML, CSS, DOM), так что есть надежда, что будущие версии браузеров будут унифицированы и один и тот же сайт станут отображать одинаково корректно. 7. Технология DHTML: Общие правила использования, синтаксис языка JavaScript. Dynamic HTML — это набор технологий, работающих на стороне клиента и обеспечивающих динамическое формирование Веб-страницы в процессе ее загрузки, и динамическое изменение Веб-страницы в ответ на действия пользователя или другие события. Для достижения перечисленных целей используются следующие методы: • динамическое изменение атрибутов и стилей элементов, составляющих HTML-документ; • динамическое извлечение данных из внешних источников и включение их в Веб-страницу; • использование динамически загружаемых шрифтов; • поддержка визуальных и мультимедийных эффектов при отображении страниц; • механизмы сохранения информации на компьютере-клиенте между сессиями работы. Все эти явно разнородные методы покоятся, в действительности, на двух китах. Первым из них является интеграция HTML-документа, каскадных стилей и сценариев клиента, основанная на объектной модели документа. Вторым — использование компонентного программирования, позволяющего нам встраивать однажды разработанные компоненты во вновь создаваемые документы. Применение DHTML на практике выливается в динамически изменяемые цвета, анимированную графику, систему выпадающих меню и другие стандартные (для современных ОС, но не для Веба) элементы
пользовательского интерфейса, явно привлекательнее для пользователя, чем обычные статические страницы. Разумеется, при этом нужно иметь чувство меры и соблюдать общие принципы дизайна. При умелом использовании DHTML приводит к уменьшению трафика. Он переносит основную тяжесть по формированию Веб-страниц с сервера на клиент. Основным недостатком DHTML является то, что он не стандартизован, и под каждый из популярных Вебобозревателей нужно писать свою версию HTML-документа. Динамической страницы требует программирования на сценарном языке, сопряженного с пониманием работы обозревателя на уровне генерации и обработки событий, владением основами пользовательского интерфейса и т. п. Веб-обозреватель, работающий на компьютере-клиенте, обеспечивает среду, в которой СКРИПТ имеет доступ к объектам, которые представляют собой окна, меню, диалоги, текстовые области, фреймы, куки и ввод-вывод в Вебстраницу. Кроме того, обозреватель позволяет присоединить сценарии на языке JavaScript к таким событиям, как загрузка и выгрузка страниц и графических образов, нажатие клавиш и движение мыши, выбор текста и пересылка форм. При этом программный код сценариев только реагирует на события и поэтому не нуждается в главной программе. Набор объектов, предоставляемых обозревателем, известен под названием Document Object Model (DOM). JavaScript — объектно-ориентированный язык сценариев, позволяющий включать в веб-страницы исполняемое содержимое (скрипты). JavaScript выполняется на стороне клиента и поддержка JavaScript включена практически во всех браузерах. С помощью этого языка вы сможете отойти от статики обычного HTML и создавать страницы с динамически изменяемым содержанием. В этом разделе приводится учебник по JavaScript в примерах. После изучения этих уроков вы сможете писать скрипты любой сложности. Синтаксис JavaScript и Java сделан по образцу C и C++. Отметим основные правила: Чувствительность к регистру. Все ключевые слова пишутся в нижнем регистре. Все переменные и названия функций пишутся точно так же, как и были определены (например, переменные Str и str являются разными переменными). Пробелы, табуляция и перевод строки. Эти символы игнорируются в JavaScript, так что можно использовать их для форматирования кода с тем, чтобы его было удобно читать. Символ точка с запятой (;). Все операторы должны быть разделены этим символом. Если оператор завершается переводом строки, то точку с запятой можно опустить. При этом нужно следить за тем, чтобы при разрыве строки одного оператора, новая строка не начиналась бы с самостоятельного оператора. Комментарии. JavaScript игнорирует любой текст расположенный между символами /* и */. Также игнорируется текст начинающийся символами // и заканчивающийся концом строки. Индентификаторы. Индентификаторами являются имена переменных, функций, а также меток. Индентификаторы образуются из любого количества букв ASCII, подчеркивания (_) и символа доллара ($). Первым символом не может быть цифра, а в версии JavaScript 1.0 не допускается использования и символа $. Ключевые слова. Ключевые слова не могут использоваться в качестве индетификаторов. Ключевыми словами являются: break, case, continue, default, delete, do, else, export, false, for, function, if, import, in, new, null, return, switch, this, true, typeof, with. 8. Технология DHTML: Принципы объектной модели языка JavaScript. При создании HTML-документов и JavaScript-программ необходимо учитывать структуру объектов. Все объекты можно разделить на три группы: 1 Объекты браузера ; 2 Внутренние, или встроенные, объекты языка JavaScript ; 3 Объекты, связанные с тегами языка HTML ; Объектами браузера являются зависимые от браузера объекты: window (окно), location (местоположение) и history (история). Внутренние объекты включают простые типы данных, такие как строки (string), математические константы (math), дата (date) и другие. Объекты, связанные с тегами HTML, соответствуют тегам, которые формируют текущий документ. Они включают такие элементы как гиперсвязи и формы. Методы объектов С объектами связаны методы, которые позволяют управлять этими объектами, а также в некоторых случаях менять их содержимое. Кроме того в языке JavaScript имеется возможность создавать свои методы объектов. При использовании метода объекта, нужно перед именем метода указать имя объекта к которому он принадлежит. Например, правильным обращением к методу document является выражение document.write(), а просто выражение write() приведет к ошибке. Свойства объектов языка JavaScript В объектно-ориентированном программировании используется также термин свойство. Свойство — это именованное значение, которое принадлежит объекту. Все стандартные объекты языка JS имеют свойства. Например, в прошлой главе мы использовали в одном из примеров свойство bgColor объекта document. данное свойство соответствует атрибуту bgColor тега
— цвет фона документа. Для обращения к свойству необходимо указать имена объекта и свойства, разделив их точкой. Каждый объект имеет собственный набор свойств. Набор свойств нового объекта можно задать при определении объекта. Однако, некоторые свойства объктов существуют только для чтения, и вы не можете их менять. В таких случаях можно получить только значения этих свойств. Как показывает практика, такие свойства изменять обычно без надобности и проблем в связи с этим не возникает. Объекты браузеровБраузеры поддерживают объекты различных типов. HTML-объектами являются объекты, которые соответствуют тегам языка HTML. К ним относятся метки, гиперсвязи и элементы формы — текстовые поля, кнопки, списки и др. Объекты верхнего уровня, или объекты браузера, — это объекты, поддерживаемые в среде браузера: window, location, history, document, navigator. Объекты, перечисленные в таблице, создаются автоматически при загрузке документа в браузер. Объект window Объект window обычно соответствует главному окну браузера и является объектом верхнего уровня в языке JavaScript, поскольку документы, собственно, и открываются в окне. В фреймосодержащих документах, объект window может не всегда соответствовать главному окну программы. Поэтому для обращения к конкретному окну следует использовать свойство frames объекта parent. Фреймы — это те же окна. Чтобы обратиться к ним в языке JavaScript, можно использовать массив frames. Например, выражение parent.frames[0] обращается к первому фрейму окна браузера. Предполагается, что такое окно существует, но при помощи метода window.open() можно открывать и другие окна и обращаться к ним посредством свойств объекта window. Для обращенния к методам и свойствам объекта window используют следующие варианты записи: window.propertyName window.methodName (parameters) self.propertyName self.methodName (parameters) top.propertyName top.methodName (parameters) parent.propertyName parent.methodName (parameters) windowVar.propertyName windowVar.methodName (parameters) propertyName methodName (parameters) Здесь windowVar — экземпляр объекта window. Имя self — синоним, используемый для обращения к текущему окну во фреймосодержащем документе, тогда как имя top применяется для обращения к главному окну браузера. Для этой цели можно применить и объект parent. Однако следует иметь в виду, что значением parent является ссылка на родительское окно, когда top — ссылка на окно верхнего уровня, которое содержит либо данный фрейм, либо фрейм содержащий вложенный фрейм. Обращение напрямую к методам и свойствам возможно при использовании оператора with. 9. Технология DHTML. Спецификации DOM 2, DOM 3. DOM Level 1. DOM – это специальная, языково-независимая интерфейсная модель разбора XML и HTML документов. В этой статье мы будем рассматривать основную и самая важную часть DOM – DOM Core описывающую модель XML. Существует три уровня моделей DOM: DOM Level 1 – описывает основные интерфейсы, DOM Level 2 – вводит дополнение XML Namespaces, DOM Level 3 – определяет методы Load и Save. DOM представляет документ как иерархию узлов. DOM определяет стандартный набор интерфейсов узлов которые может использовать XML-анализатор для анализа документа. Существуют узлы таких типов: • Text (простой текст). Например: «
It’s a header
And it is a content