Title: Is there a way to detect Flash blockers?
Tags: javascript;flash;plugins
Question: I'm wondering wether there's a Javascript way to detect wether a user has any sort of flash blocking plugin installed so i can accommodate these users properly.
For example, I use 'click to flash', but sites that use SiFR to render text are littered with "click to flash" buttons, which is getting very annoying. I don't use SiFR in my designs for this reason. But if I could spot wether there's a flash blocking plugin installed, I would simply not call the SiFR function.
Any ideas?
Comment: I'm not sure and don't have the time to dig in more, but have you looked at swfobject ? http://code.google.com/p/swfobject/

Comment: http://stackoverflow.com/questions/17727766/how-to-check-flash-plugin-is-blocked-in-chrome
http://stackoverflow.com/questions/5717062/how-to-detect-flash-using-swfobject

Here is the accepted answer: Take a look at http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html. You could call the following after the page has loaded.
var movie = window.document.movie;
//if the movie is blocked then PercentLoaded() should through an exception
if (movie.PercentLoaded() &gt; 0) {
//Movie loaded or is loading
catch (e) {
//Movie is blocked
Comment for this answer: In case anyone is interested, the page i archived on archive.org: https://web.archive.org/web/20100710000820/http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

Here is another answer: The soundmanager2 JS library uses the PercentLoaded function of a movie reference.
Excerpt:
return (flash &amp;&amp; 'PercentLoaded' in flash ? flash.PercentLoaded() : null);
Interesting syntax notes… Flash/ExternalInterface (ActiveX/NPAPI) bridge methods are not typeof “function” nor instanceof Function, but are still valid. Additionally, JSLint dislikes (‘PercentLoaded’ in flash)-style syntax and recommends hasOwnProperty(), which does not work in this case. Furthermore, using (flash &amp;&amp; flash.PercentLoaded) causes IE to throw “object doesn’t support this property or method”. Thus, ‘in’ syntax must be used.
For getting a reference to a Flash movie, this page might prove useful.

{'source': 'StackExchangeDataset', 'subset': 'stackoverflow.com', 'metadata': {'AnswerCount': 2, 'CommentCount': 2, 'ContentLicense': 'CC BY-SA 2.5', 'CreationDate': '2010:00:02/03/10', 'FavoriteCount': 1.0, 'PostTypeId': 1, 'Tags': '<javascript><flash><plugins>', 'Title': 'Is there a way to detect Flash blockers?', 'ViewCount': 2067, 'id': 2192203, 'user_AboutMe': '<p>Designer developer, living and working in London UK.</p>\n', 'user_AccountId': 25190.0, 'user_DisplayName': 'gargantuan', 'user_Reputation': 8828.0, 'user_Views': 1195.0, 'user_id': 64586.0}}