Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unix.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.91 Mб
Скачать

Зависимость программ на JavaScript от типа браузера

Как видно из кода примера предыдущего раздела, программы JavaScript, выполняющиеся в различных браузерах, отличаются, т.к. отличаются объектные модели самих браузеров. Поэтому первым шагом программы должно быть определение типа браузера. После чего, в необходимых точках программы предусматривается выполнение различных блоков команд для различных типов браузеров.

Для определения типа браузера могут использоваться различные приемы. В частности, можно пользоваться свойствами navigator.appName (название браузера) и navigator.appVersion (версия браузера). Однако мне более удобным и элегантным кажется метод, основанный на различной реализации браузерами объектов для работы со слоями.

Пример, приведенный ниже, иллюстрирует этот прием. В нем определяется тип браузера и, в зависимости от этого, используется разный программный код для организации анимации рисунка, находя­щегося внутри слоя. В примере вводятся три переменные: ns (Netscape Navigator), ie (Internet Explorer) и ns6 (Netscape Navigator 6.0). Если, в результате проверки существования того или иного объекта, какая-либо переменная получает значение "истина", то значит мы имеем дело с соответствующим браузером. Такой подход выгоден и потому, что может существовать множество браузеров, название которых трудно перечис­лить, но которые копируют объектную модель соответствующих популярных браузеров. Так, например, работа со слоями в браузере Opera реализована аналогично Internet Explorer (document.all.название_слоя. style.свойства_слоя), а значит программы для Internet Explorer сработают и в браузере Opera.

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html><head><title> Определение типа браузера^гш^

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<div id="elogo" style="position:absolute; top:10; left:10; width:100; height:82"> <img src="enot1.gif" alt="gilermo" width="100" height="82" name="enot"> </div>

/* определение типа браузера. */ <script language="JavaScript"> ns=(document.layers)? 1:0;

ns6=(document.getElementById&&!document.all)?1:0; ie=(document.all)? 1:0;

/* предварительная загрузка рисунков для анимации */ me=new Array (4);

e1=new Image(); e2=new Image(); e3=new Image(); e4=new Image(); e1.src="enotLgif"; e2.src="enot1m.gif"; e3.src="enot2.gif"; e4.src="enot2m.gif"; me[1]=e1; me[2]=e2; me[3]=e3; me[4]=e4; ienot=1;

/* анимация */ function goEnot() {

if (ns) document.elogo.document.enot.src=me[ienot].src; // версия кода для Netscape Navigator

if (ns6||ie) document.enot.src=me[ienot].src; // версия кода для Internet Explorer, Netscape 6, Opera

ienot++; if (ienot>2) ienot=1;

T=setTimeout("goEnot()",300);

}

goEnot();

</script> </body> </html>

Составитель: Ляхевич А.Г., 2000 - 2002 год

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]