Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / DHTML /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Объектная модель HTML-документа - Программирование от RIN.RU
Объектная модель HTML-документа




После рассмотрения базовых интерфейсов мы переходим к описанию объектной модели HTML-документов в соответствии с DOM 2 HTML. Эта модель основана на следующих интерфейсах:



  • интерфейс HTMLDocument, соответствующий HTML-документу и производный от интерфейса Document;


  • интерфейс HTMLElement, соответствующий абстрактному HTML-элементу и производный от интерфейса Element;


  • интерфейсы, соответствующие конкретным элементам языка HTML и производные от интерфейса HTMLElement;


  • вспомогательные интерфейсы HTMLDOMImplementation и HTMLCollection.





Описанные в этой главе интерфейсы не являются обязательными для реализации DOM. Если реализация их поддерживает, то рекомендуется, чтобы ее метод DOMImplementation.hasFeature возвращал true при соответствующем запросе.


Реализация DOM HTML: интерфейс HTMLDOMImplementation


Поддержка :Не поддерживается.
Не поддерживается.



Интерфейс HTMLDOMImplementation является производным от интерфейса DOMImplementation. Он наследует все его свойства и методы, и имеет единственный дополнительный метод createHTMLDocument, позволяющий нам создавать объекты типа HTMLDocument.


Метод createHTMLDocument


Синтаксис:  объект.createHTMLDocument(title)
Аргументы: title - выражение типа DOMString
Результат: новый объект HTMLDocument
Исключения: нет


Поддержка :Не поддерживается.
Не поддерживается.



Метод createHTMLDocument создает новый объект HTMLDocument и возвращает указатель на него. Дерево нового документа состоит из четырех элементов: HTML, HEAD, TITLE и BODY. Аргумент title содержит титул документа, который становится содержимым элемента TITLE как его сыновний узел типа Text.


Коллекции: интерфейс HTMLCollection


Поддержка :Соответствует стандарту.
Соответствует стандарту.



Интерфейс HTMLCollection обобщает интерфейс NodeList таким образом, что доступ к элементам списка узлов становится возможен как по их номеру в списке, так и по их имени. Под именем элемента здесь понимается значение его атрибута id или name. Коллекции являются живыми, т. е. любое изменение документа влечет автоматическое изменение всех связанных с ним коллекций.


Этот интерфейс имеет единственное свойство length, возвращающее количество узлов в списке, и два метода: item, возвращающий элемент списка с заданным номером (элементы списка узлов нумеруются, начиная с нуля) и namedItem, возвращающий элемент списка с заданным именем.


Свойство length


Синтаксис:  коллекция.length
Изменяемое: нет


Поддержка :Соответствует стандарту.
Соответствует стандарту.



Свойство length возвращает количество элементов в коллекции. Допустимые индексы элементов списка лежат в диапазоне от 0 до length-1 включительно. Следующий пример выводит на экран количество элементов в дереве документа:



alert(document.getElementsByTagName("*").length); // в Gecko (стандарт)
alert(document.all.length); // в Internet Explorer





Метод item


Синтаксис:  коллекция.item(index)
Аргументы: index - числовое выражение
Результат: узел Node или null
Исключения: нет


Поддержка :Соответствует стандарту.
Соответствует стандарту.



Метод item возвращает элемент коллекции с заданным индексом в качестве результата. Если индекс выходит за пределы диапазона элементов списка, то возвращается null. Элементы коллекции нумеруются в обратном порядке прохождения дерева, т. е. от листьев к корню. Пример: оператор



alert(document.childNodes.item(0).nodeName);





выведет на экран текст HTML.


JavaScript позволяет нам записать обращение к элементу коллекции более компактно. Предыдущий оператор может выглядеть так:



alert(document.childNodes[0].nodeName);





Internet Explorer поддерживает еще одну форму обращения к элементу списка, а именно:



alert(document.childNodes(0).nodeName);





Однако, эта форма является нестандартной, и ей лучше не пользоваться.


Метод namedItem


Синтаксис:  коллекция.namedItem(name)
Аргументы: name - выражение типа >DOMString
Результат: узел Node или null
Исключения: нет


Поддержка :Реализован нестандартно.
Соответствует стандарту.



Метод namedItem возвращает элемент коллекции с заданным именем в качестве результата. Сначала ищется элемент, у которого атрибут id равен name; в случае неудачи ищется элемент, у которого атрибут name равен name. Если и такой элемент не найден, то возвращается null. Пример:



<IMG name="img1" src="file1.gif">
...
<SCRIPT>
alert(document.images.namedItem("img1").src);
</SCRIPT>





Оператор alert выведет в Gecko на экран спецификацию файла file1.gif. Internet Explorer не поддерживает стандартный синтаксис этого метода, поэтому для него данный оператор должен выглядеть так:



alert(document.images["img1"].src);





Приведенная форма приемлема и для Gecko. Internet Explorer поддерживает еще одну форму обращения к именованному элементу списка, а именно:



alert(document.images("img1").src);





Однако, эта форма является нестандартной, и ей лучше не пользоваться.


Вперед  >>>
 1  2  3 


 8  Комментарии к статье  8  Обсудить в форуме  8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь