Web-анатомия Web-анатомия Web-анатомия
Web-анатомия Web-анатомия Web-анатомия HTML CSS JScript DHTML
заголовок - CSS
детектирование Flash с помощью JavaScript и VBScript


Новая версия сайта находится по адресу


wa.artel.by




Материал взят с сайта http://www.xs4all.nl/~ppk/js/ с нарушением всех авторских прав. Перевод и адаптация by FireFalcon.

Сразу отмечу, что этот скрипт не работает в 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'у (Это для эксплорера).

VBScript работает почти аналогично, потому его трогать не буду. Если очень интересно, напишите. Отвечу.
заголовок - CSS

Новости сайта Ссылки/только полезные ресурсы не нажимать! Пишите письма
новости

3 мая 2001. Новенькое по CSS/ Кросс-браузерность:
фишки слепого браузера


18 апреля 2001. Новенькое по CSS/ Кросс-браузерность:
не наступай на грабли


11 апреля 2001. Новый материал по HTML/ Логические тэги:
облегчаем жизнь


30 марта 2001. Ну наконец-то! Новый материал по HTML/ Favicon:
плюсы и минусы


21 марта 2001. Новый материал по CSS/ секреты CSS:
правильные стили (IV)


15 марта 2001. Новый материал по CSS/ секреты CSS:
правильные стили (III)


JavaScript
И куда нам без скрипта? Никуда, кроме статического HTML. Он, конечно, старый добрый знакомый, но иногда хочется чего-нибудь инновационного (во сказал...)

Все, что может сказать браузер

Netscape 6:
детектирование


Netscape 6:
главные особенности


MouseOver:
фишки


Детектирование Flash

Ссылки:
облегчаем себе жизнь


 

Hosted by uCoz