Часто возникает задача: определить установлен Flash у пользователя или нет. Для того, чтобы если не установлен показать картинку вместо Flash-объекта. Удобно такое определение делать на Javascript. Поэтому и тема у нас сегодня гласит: Javascript проверить установлен Flash или нет.

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, то флеш уставновлен, а в противном случае — нет.

Надеюсь, эта статья поможет вам в решении ваших задач.