Автор статьи: Головин Андрей
DHTML позволяет автору страницы создавать собственные атрибуты элементов. При отображении документа, браузер должен хранить нераспознанные атрибуты, как и распознанные. Для доступа к любому атрибуту Internet Explorer предлагает три основных метода:
>getAttribute(имя [опции]);
setAttribute(имя [опции]);
removeAttribute(имя [опции]);
В каждом методе имя — имя атрибута в виде строки. опции — на данное время при установке значения true имя атрибута рассматривается как чувствительное к регистру. По умолчанию значение равно false.
Кроме того имеется возможность получить доступ к атрибутам через свойства объекта document. Предположим, что на странице размещен следующий код:
...
<IMG ID="coolImage" SRC="coll.gif" WIDTH=80 HEIGHT=80 ALT="Cool">
...
Для доступа к атрибутам этого изображения можно использовать следующий скрипт:
alert(document.all.coolImage.src);
alert(document.all.coolImage.getAttribute("src");
Между этими методами доступа существует принципиальная разница. Если метод getAttribute возвращает то значение, которое стоит в тэге <SPAN class=tag><IMG>, то доступ через семейство document.all может показать значение по умолчанию, если атрибут задан неверно. Например, если установить атрибут <SPAN class=tag>SIZE в значение <SPAN class=tag>big, то метод getAttribute возвратит значение <SPAN class=tag>big, а если применить второй метод, то занчение 20 (20 — значение по умолчанию для атрибута SIZE), так как значение big является неверным для данного атрибута.
использование собственных атрибутов позволяет расширить возможности создания динамических документов. Можно вводить новые свойства, которые затем использовать в скриптах. Например, разрабатывая систему перемещения элементов страницы с помощью мыши, можно ввести атрибут dragEnabled и затем, в скрипте, анализирующем события мыши, реагировать только на события от элементов, имеющих этот атрибут. или при разработке панелей навигации можно задавать исходные файлы состояний кнопки прямо в атрибутах изображения. Например вот так:
<IMG CLASS="menu" SRC="menu1.gif"
highlite="menu1_h.gif" disabled="menu1_d.gif"
ONMOUSEOVER="hi(this)" ONMOUSEOUT="lo(this)">
и затем в скрипте:
function hi( el ) {
...
with (el) {
src=getAttribute(highlite);
}
function lo( el ) {
...
with (el) {
src=getAttribute(disabled);
}
Необходимо помнить, что атрибуты хранятся как типизированные переменные. В число возможных типов входят: числовое значение, строка, строка из предопределенного списка и логическое значение. При попытке задать числовое значение строковой переменной JavaScript выполнит необходимые преобразования до присвоения, но хорошей практикой является явное указание преобразования. Например:
document.coolText.size = parseInt("100");