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
возвращает то значение, которое стоит в тэге <IMG>, то доступ через семейство document.all может показать значение по
умолчанию, если атрибут задан неверно. Например,
если установить атрибут SIZE в
значение big, то метод getAttribute
возвратит значение 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");
|