Заглянем внутрь Java Script (часть 2)

Автор: Tarus Четверг, Апрель 5th, 2012 Нет комментариев

Рубрика: Уроки JavaScript

В этой статье мы постараемся разобраться, как написать скрипт, для работы со слоями, одинаково подходящий, как для IE, так и для NN.

Слоями могут быть блоки с графикой, текстом и т.д. Просто каждый блок должен быть заключен в тег <div> и тегу надо дать уникальный ID.

Для нетскейпа и эксплорера слои обозначаются по разному, конечно можно написать отдельно функции для NN и отдельно для IE, с проверкой версии браузера. Но представим, что нам надо написать 4 функции, а 8, а теперь все это умножить на два — впечатляет!?

Мы напишем скрипт, который будет работать в обоих браузерах, но будет в два раза короче.

Предположим, мы хотим спрятать слой. Посмотрим как должна выглядеть строка для NN:
document.layers.LayerName.visibility = ‘hidden’;

А вот строка для IE:
document.all.LayerName.style.visibility = ‘hidden’;

Ну как увидели разницу? Для NN мы используем обозначение слоев — layers, для IE — all, также для IE, для обозначения стиля используется — style, а в NN мы ничего не ставим
Для оптимальной работы кода мы создадим две переменные и поставим проверку на имя браузера:
if (navigator.appName == «Netscape»)
{
var layerRef=».layers.»;
var styleRef=»";
}
else
{
var layerRef=».all.»;
var styleRef=».style»;
}

Теперь для NN и IE у нас есть переменные содержащие нужные обозначения и мы воспользуемся командой eval, которая как бы «склеивает» строки. Вот как будет это выглядеть:
eval(«document» + layerRef +»def_sloy» + styleRef + «.visibility = ‘hidden’»);
Теперь пишем нужное количество строк, показывающих ‘visible’ и убирающих ‘hidden’ слои. Объединяем их в функции относительно каждого слоя. Функции должны срабатывать на ссылках по действию onclick=»ИМЯ_ФУНКЦИИ», href=#.

Итак, теперь наш скрипт для работы со слоями будет занимать вдвое меньше места.

А вот пример работы такого скрипта.

Автор: Сухов
E-mail: andersu@narod.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты