Главная » Статьи » Уроки JavaScript » Заглянем внутрь Java Script (часть 2)

В этой статье мы постараемся разобраться, как написать скрипт, для работы со слоями, одинаково подходящий, как для 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


© 2006-2008 Web-mastering.net - "Портал вебмастеров"