vvz.nw.ru Примеры к занятиям по JavaScript

<< Определение возможностей клиентского JavaScript

Очевидно, что браузеры разных версий и разных производителей отличаются степенью поддержки базовой версии JavaScript и возможностей DOM. Свойство window.navigator.userAgent позволяет определить параметры браузера и организовать адекватную настройку сценария. Однако в большинстве случаев нас интересует более узкий и конкретный вопрос: реализована ли в данном браузере нужная нам возможность. Скажем, при желании организовать смену изображений в ответ на события мыши надо по крайней мере убедиться в том, что браузер поддерживает свойство document.images . Проверяется поддержка существенных для сценария свойств и методов, естественно с помощью условного оператора. Например, в случае примера со сменой изображений

if ( document.images )
{ ...
  описание функций и операторов,
  обеспечивающих смену изображений
  ...
}
else
{ ...
  альтернативный вариант
  ...
};


Вот несколько примеров. Ниже в зависимости от поддержки реализованной в данном браузере версиии JavaScript определенных (существенных) возможностей выводятся сообщения.
 

Ниже приведен код JavaScript, использованный для вывода сообщений. В реальной ситуации в подобных условных инструкциях, разумеется, должен быть не вывод сообщения методом document.write(), а программный код, соответствующий особенностям браузера.

<script type="text/javascript">

if (!document.images)
   document.write('Браузер не поддерживает свойство <b>document.images</b>. Такое бывало, например, с MS IE 3. ' +
   'Это может быть очень старый графический либо современный, но текстовый, браузер. ' +
   'Организовать смену изображений в ответ на события мыши не удастся.<p>')
else
   document.write('Браузер поддерживает свойство <b>document.images</b>. Это дает возможность организовать ' +
   'смену изображений в ответ на события мыши.<p>');

if (!document.layers)
   document.write('Браузер не поддерживает свойство <b>document.layers</b>. Это точно не Netscape Navigator 4 - ' +
   'и слава богу. Есть надежда, что реализована совместимость с DOM (увидим далее).<p>')
else
   document.write('Браузер поддерживает свойство <b>document.layers</b>. Значит, это Netscape Navigator 4. ' +
   'К сожалению, многие современные стандартизированные возможности JavaScript ' +
   'в этом браузере не реализованы.<p>');

if (!document.all)
   document.write('Браузер не поддерживает свойство <b>document.all</b>. Это точно не MS IE 4+ .<p>')
else
   document.write('Браузер поддерживает свойство <b>document.all</b>. Значит, это MS IE 4+ .<p>');

if (!document.getElementById)
   document.write('Браузер не поддерживает свойство <b>document.getElementById</b>, т.е. не совместим с DOM. ' +
   'Браузер точно не может быть MS IE 5+ или Mozilla.' +
   'Обращаться к элементу документа, имеющему уникальный ID, придется изощренными и странными способами.<p>')
else
   document.write('Браузер поддерживает свойство <b>document.getElementById</b>. ' +
   'Это дает удобную возможность обращаться к элементу документа, имеющему уникальный ID. ' +
   'Браузер может быть MS IE 5+ или Mozilla, но это уже не так важно.<p>')

</script>


vvz.nw.ru  > JavaScript