Составители:
Рубрика:
30
Пример из недавнего прошлого
Сейчас смена изображений при наведении курсора мыши кажется
тривиальным декоративным приемом. Но не так уж давно такой фокус
можно было реализовать лишь в браузере Netscape Navigator 3+. В MS
IE 3 эта возможность отсутствовала, хуже того – сценарий выдавал
ошибку и сообщал об этом во всплывающем модальном окне.
Причина в том, что интерпретатор JavaScript Netscape Navigator 3+
поддерживал объект images стандарта DOM0, а MS IE 3 –
не
поддерживал. Пожалуй, наиболее элегантный метод выяснения,
поддерживается ли объект images, может быть реализован
следующим образом:
if ( document.images )
{
описание инструкций, обеспечивающих смену
изображений
}
else
{
альтернативный вариант
};
Почему работает такой сценарий, не выдавая сообщения об ошибке?
Дело в том, что обращение к некоему объекту как к условию
инструкции if возвращает булево
значение: true, если объект
определен, и false в противном случае. Таким образом,
срабатывает нужный блок условной инструкции.
Пример, актуальный сегодня
Наиболее универсальный и удобный способ обращения к элементам
документа из сценария – использование их уникальных
идентификаторов id. Для идентификации элементов применяется
метод getElementById(), не определенный в ряде устаревших
браузеров. Не будем сейчас рассматривать вопрос о том, что же
именно предпринять, если этот метод не определен. Все зависит от
решаемой задачи. Но подход
к определению, какие варианты
идентификации выбрать, тот же, что и в предыдущем примере.
31
if ( document.getElementById )
{
описание инструкций, использующих метод
getElementById()
}
else
{
альтернативный вариант
};
Отметим также, что именно факт поддержки тех или иных свойств и
методов, связанных с моделями DOM0 и DOM2, может служить
удобным методом определения типа браузера и его версии.
Посмотрите на следующий пример, в котором глобальным
переменным isMozilla, isIE5 и isOpera присваиваются булевы
значения,
которые потом удобно будет использовать в сценарии в
контексте условных инструкций.
var isMozilla = (document.getElementById &&
!document.all);
var isIE5 = (document.getElementById &&
document.all);
var w = navigator.userAgent.toLowerCase();
var opera=( w.indexOf('opera')!=-1 );
Идентификация элементов
документа
Модели документа DOM0 и DOM2 предоставляют свои возможности
идентификации элементов документа. Для чего нужна эта
идентификация? Например, для того, чтобы при реализации
определенного события (click, mouseOver, mouseOut, ...)
• указанному элементу присвоить иные свойства стиля: цвет, фон,
видимость и т.д. (скажем, при реализации меню);
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »