Есть ли способ обнаружить блокировщики Flash? - PullRequest
6 голосов
/ 03 февраля 2010

Мне интересно, есть ли способ Javascript для определения, установлен ли у пользователя какой-либо плагин блокировки флэш-памяти, чтобы я мог правильно разместить этих пользователей.

Например, я использую «click to flash», но сайты, которые используют SiFR для визуализации текста, изобилуют кнопками «click to flash», что очень раздражает. По этой причине я не использую SiFR в своих проектах. Но если бы я мог заметить, что установлен плагин, блокирующий вспышку, я бы просто не вызывал функцию SiFR.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 04 февраля 2010

Взгляните на http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html. После загрузки страницы вы можете вызвать следующее.

var movie = window.document.movie;
try {
    //if the movie is blocked then PercentLoaded() should through an exception
    if (movie.PercentLoaded() > 0) {
        //Movie loaded or is loading
    }
}
catch (e) {
    //Movie is blocked
}
2 голосов
/ 01 февраля 2013

Библиотека JS soundmanager2 использует функцию PercentLoaded ссылки на фильм.
Выдержки:

return (flash && 'PercentLoaded' in flash ? flash.PercentLoaded() : null);

Интересные примечания по синтаксису ... Методы моста Flash / ExternalInterface (ActiveX / NPAPI) не являются типом «функции» или экземпляром функции, но все еще действуют. Кроме того, JSLint не поддерживает синтаксис в стиле «PercentLoaded» во флэш-памяти и рекомендует hasOwnProperty (), который в этом случае не работает. Кроме того, использование (flash && flash.PercentLoaded) приводит к тому, что IE выбрасывает «объект не поддерживает это свойство или метод». Таким образом, должен использоваться синтаксис «in».

Для получения ссылки на Flash-фильм эта страница может оказаться полезной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...