 |
| | | | |
 |
 |
Определение флеша, flash |  |
определение флеша
Сразу отмечу, что этот скрипт не работает в Netscape 2, Explorer 3 и 4 на Mac'е, и Konqueror.
Теоретически проверить, установлен ли Флэш-плагин, можно, используя массив navigator.mimeTypes. Этот массив содержит все mime-типы, которые понимает браузер. Нужно определить, понимает ли браузер application/x-shockwave-flash mime-тип и есть ли плагин.
Netscape 2 не поддерживает этот массив. Поэтому скрипт в нем не работает.
Еще одна беда в том, что JavaScript для Эксплорера не поддерживает вообще никаких mime-типов. Приятным исключением является Explorer 5 для Mac.
Единственный путь определения mime-типов в Эксплорере - использование VBScript. Эксплорер на Маке вообще не поддеживает VBScript. По этой причине там детектить флэш невозможно.
Код |
<script LANGUAGE="Javascript"> var flashinstalled = 0; MSDetect = "false";
if (navigator.mimeTypes && navigator.mimeTypes.length) { x = navigator.mimeTypes['application/x-shockwave-flash']; if (x && x.enabledPlugin) flashinstalled = 2; else flashinstalled = 1; } else { MSDetect = "true"; } </SCRIPT>
<script LANGUAGE="VBScript"> If MSDetect = "true" Then If Not(IsObject(CreateObject ("ShockwaveFlash.ShockwaveFlash"))) Then flashinstalled = 1 Else flashinstalled = 2 End If End If </SCRIPT> |
После выполнения скрипта переменная flashinstalled может иметь три значения: 2: Flash проинсталирован 1: Flash не проинсталирован 0: неизвестно, проинсталирован ли Flash
С переменной можно делать все что угодно. Хоть бы редирект какой. На HTML версию страницы, если флэша нет. Правда, надо быть осторожным с третьим вариантом, когда нет уверенности в том, стоит ли плагин для флэш.
Пояснения и прочее.
Переменная MSDetect нужна для определения того, нужно использовать VBScript или нет. Если нужно, то она устанавливается в true. Потом проверяется, есть ли вообще navigator.mimeTypes и, если есть, не нулевой ли он длины:
Код |
if (navigator.mimeTypes && navigator.mimeTypes.length) |
Если все нормально, проверяем, есть ли navigator.mimeTypes['application/x-shockwave-flash']. Если есть, то проверяем его свойство .enabledPlugin. Если опять все нормально, то присваиваем flashinstalled=2 (плагин для флэш установлен). Если нет, то flashinstalled=1. (Все, для Netscape готово)
Если массив navigator.mimeTypes оказался пустым или его вообще нет, присваиваем MSDetect="true", чтобы передать проверку VBScript'у (Это для эксплорера).

|
 |