Часто возникает задача: определить установлен Flash у пользователя или нет. Для того, чтобы если не установлен показать картинку вместо Flash-объекта. Удобно такое определение делать на Javascript. Поэтому и тема у нас сегодня гласит: Javascript проверить установлен Flash или нет.
Как на Javascript проверить установлен Flash или нет?
Для решения этой задачи предлагаем использовать кросс-браузерную функцию на Javascript:
function checkFlash() { var flashinstalled = false; if (navigator.plugins) { if (navigator.plugins["Shockwave Flash"]) { flashinstalled = true; } else if (navigator.plugins["Shockwave Flash 2.0"]) { flashinstalled = true; } } else if (navigator.mimeTypes) { var x = navigator.mimeTypes['application/x-shockwave-flash']; if (x && x.enabledPlugin) { flashinstalled = true; } } else { // на всякий случай возвращаем true в случае некоторых экзотических браузеров flashinstalled = true; } return flashinstalled; }
По порядку рассмотрим как это работает:
Для того, чтобы на Javascript проверить установлен Flash или нет мы декларируем специальную функцию.
Сначала обозначаем внутри функции переменную = false (это означает, что Flash не установлен), и далее приступаем к проверкам.
Проверок будет 2 (одна для Internet Explorer, а другая для остальных браузеров).
В одной проверке мы смотрим есть ли такой mime-тип (тип поддерживаемых браузером файлов) в списке mime-типов браузера, а в другом проверяем есть ли такой плагин в списке установленных. Для любознательных: проверка с mime-типам для IE.
В результате всех проверок значение объявленной в начале функции переменной меняется (в зависимости от результатов тестов).
В конце концов функция возвращает значение этой переменной (в которой как раз и есть данные о том, установлен Flash или нет).
Как использовать функцию на Javascript проверить установлен Flash или нет
Очень просто:
if (checkFlash()) { alert('Flash-плеер установлен'); } else { alert('Flash-плеер не установлен'); }
То есть в нужном месте (где нужно проверить на Javascript проверить установлен Flash или нет) нужно просто выполнить условие if(checkFlash()) и если возвращается true, то флеш уставновлен, а в противном случае — нет.
Надеюсь, эта статья поможет вам в решении ваших задач.