Есть ли у кого-нибудь пример сценария, который может надежно работать в IE / Firefox, чтобы определить, способен ли браузер отображать встроенный флэш-контент. Я говорю достоверно, потому что знаю, что это невозможно в 100% случаев.
97
Ответы:
SWFObject очень надежен. Я без проблем пользуюсь им довольно давно.
источник
$('html').addClass(typeof swfobject !== 'undefined' && swfobject.getFlashPlayerVersion().major !== 0 ? 'flash' : 'no-flash');
if( swfobject.hasFlashPlayerVersion("8.0") ) { }
Выдает false", если флэш-память не установлена. Это минимальная требуемая версия флеш-плеера.Я согласен с Максом Стюартом . SWFObject - это то, что вам нужно. Я хотел бы дополнить его ответ примером кода. Это должно помочь вам начать:
Убедитесь, что вы включили
swfobject.js
файл (получите его здесь ):Тогда используйте это так:
Замените «9.0.115» любой необходимой минимальной версией флэш-памяти. В качестве примера я выбрал 9.0.115, потому что в этой версии добавлена поддержка h.264.
Если у посетителя нет flash, он сообщит о версии flash "0.0.0", поэтому, если вы просто хотите узнать, есть ли у него flash вообще, используйте:
источник
if(SWFobject && SWFobject.hasFlashPlayerVersion("1")) { // code here }
Я знаю, что это старый пост, но я долго искал и ничего не нашел.
Я реализовал библиотеку обнаружения Flash JavaScript . Он работает очень хорошо и задокументирован для быстрого использования. Это заняло у меня буквально 2 минуты. Вот код, который я написал в шапке:
источник
Вы можете использовать компилятор закрытия для генерации небольшого кроссбраузерного флеш-обнаружения:
в результате получается следующий "скомпилированный" код:
источник
goog.userAgent.flash
из компилятора Google Closure)? Я просто хочу убедиться, что не упускаю здесь каких-то нюансов.Минимальная версия, которую я когда-либо использовал (не проверяет версию, только плагин Flash):
источник
Библиотека обнаружения Flash-памяти JavaScript Карла Йестрау, здесь:
http://www.featureblend.com/javascript-flash-detection-library.html
... может быть то, что вы ищете.
источник
Может быть, здесь может быть полезен комплект обнаружения flash-плеера Adobe?
http://www.adobe.com/products/flashplayer/download/detection_kit/
источник
Обнаружение и внедрение Flash в веб-документ - удивительно сложная задача.
Я был очень разочарован качеством и нестандартной разметкой, созданной как из SWFObject, так и из решений Adobe. Кроме того, мое тестирование показало, что автоматическое обновление Adobe непоследовательно и ненадежно.
Библиотека JavaScript Flash Detection (Flash Detect) и JavaScript Flash HTML Generator Library (Flash TML) представляют собой удобочитаемое, удобное в обслуживании и соответствующее стандартам решение для разметки.
- «Люк, почитай источник!»
источник
Код для одной линейной
isFlashExists
переменной:Обратите внимание, что есть такая альтернатива:
swfobject.getFlashPlayerVersion();
источник
См. Исходный код на http://whatsmy.browsersize.com (строки 14–120).
Вот абстрактный кроссбраузерный код на jsbin только для обнаружения флеш-памяти , работающий на: FF / IE / Safari / Opera / Chrome.
источник
detectObject()
аналог для IE.что о:
источник
Если вас интересует решение на чистом Javascript, вот то, что я скопировал у Бретта :
источник
Если вы просто хотите проверить, включена ли вспышка, этого должно быть достаточно.
Примечание: избегайте проверки enabledPlugin , в некоторых мобильных браузерах есть подключаемый модуль flash, активируемый касанием, и это вызывает ложноотрицательный результат.
источник
Чтобы создать объект Flash, соответствующий стандарту (однако с помощью JavaScript), я рекомендую вам взглянуть на
Ненавязчивая вспышка объектов (НЛО)
http://www.bobbyvandersluis.com/ufo/index.html
источник
Создал небольшую
.swf
переадресацию. Если в браузере включен флэш-диск, он выполнит перенаправление.источник
Используя компилятор Google Closure goog.require ('goog.userAgent.flash'), я создал эти 2 функции.
логическое hasFlash ()
Возвращает, если в браузере есть flash.
логическое isFlashVersion (версия)
Возвращает, если версия флеш-памяти больше указанной.
источник