Article

Flash Player Detection Techniques Unearthed

Page: 1 2 3 4 5 6 7

Conclusion

We've covered five major Flash Player detection methods here, each with varying degrees of complexity and browser support. In addition to this, we've investigated some useful ways of making the detection process both transparent to our end users and degradable for those without the Flash Player.

In writing the article I was surprised at how important the role standards support played in building more elegant version detection methods than client side scripting.

If Internet Explorer for Windows supported the Object tag to w3c recommendation and sent its HTTP-ACCEPT header correctly, we would find detection methods such as tag nesting and server side detection far more enticing to implement, which would lead to lighter markup and smarter Flash support.

Unfortunately, the monopoly this browser has in the market leaves us with client side scripting as currently the most robust detection method to use across sites for the general public.

To further other, more elegant detection scenarios I would recommend Flash developers investigate server side detection, inbuilt version detection and tag nesting, as discussed in the article.

I would also recommend developers and designers start employing the object tag-based markup used in this article and others, discarding the embed tag. Dealing with one tag only for deploying Flash files does assist in controlling the Player download and brings detection within your control, rather than handing it to whatever browser the visitor uses.

The more Web developers and designers start pushing for better browser support, the faster we will be able to implement smarter, less bloated Flash Player detection scenarios for the majority of users.

Footnote – Flash Player 7 Beta

As this article was completed, Macromedia released a beta version of Flash Player 7. At first glance, there are numerous additions in this Player including a new Flash Player Update Mechanism (currently only for Internet Explorer browsers running on Windows). For more information on this beta Player visit http://www.macromedia.com/software/flashplayer/public_beta/

Code Download

Download a zip of all five methods discussed here. Read the readme file to determine what is required for installation.

Links to Resources

Macromedia Flash SWF file format information

Macromedia Flash SWF file format download links.
http://www.macromedia.com/software/flash/open/licensing/fileformat/

Downloads of older Players for testing.
http://www.macromedia.com/support/flash/ts/documents/oldplayers.htm

How to uninstall Flash Player to test detection methods with no Player present.
http://www.macromedia.com/support/flash/ts/documents/remove_player.htm

Manyana Method

Flash Player population census
http://www.macromedia.com/software/player_census/flashplayer/version_penetration.html

Client Side Detection

Colin Moock's FPI (Flash Player Inspector)
http://www.moock.org/webdesign/flash/detection/moockfpi/

Navigator.plugins in the Javascript dictionary.
http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/nav.html#1193425

CreateObject in VBScript.
http://support.microsoft.com:80/support/kb/articles/q183/2/84.asp

The Flash Deployment Kit is Macromedia's contribution to client side detection.
http://www.macromedia.com/support/flash/player/flash_deployment_readme/

Cascading XHTML : the object tag

The Object element in the HTML4 W3c recommendation.
http://www.w3.org/TR/html4/struct/objects.html

Internet Explorer problems with nested object tag support.
http://www.xml.com/pub/a/2003/07/02/dive.html

Inbuilt Flash version detection

$version in ActionScript.
http://www.macromedia.com/support/flash/ts/documents/version.htm

getVersion() in the ActionScript dictionary.
http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary378.html

System.capabilities.version in the ActionScript dictionary.
http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary719.html

Server Side Flash Detection

Macromedia Flash Player 6 release notes.
http://www.macromedia.com/support/flash/releasenotes/player/rn_6.html#new

A Macromedia Devnet article relying on redirects and Browserhawk.
http://www.macromedia.com/devnet/mx/flash/articles/browser_hawk.html

Coldfusion and Server Side Flash detection with HTTP-ACCEPT.
http://cfm.blogspot.com/2003_03_01_cfm_archive.html#90765995

Other Resources

HTTP-ACCEPT from the W3C.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Web Content Accessibility Guidelines – Use W3c technologies.
http://www.w3.org/TR/WCAG10/#gl-use-w3c

The Embed tag – a relic from Netscape 4.
http://devedge.netscape.com/library/manuals/1998/htmlguide/tags14.html#1286379

Flash Satay – standards compliant markup to deploy Flash movies.
http://www.alistapart.com/stories/flashsatay/

A Netscape Devedge article on Object and Embed.
http://devedge.netscape.com/viewsource/2002/markup-and-plugins/

If you liked this article, share the love:
Print-Friendly Version Suggest an Article

Sponsored Links

Rate This Article

  • 1
    Poor
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
    Great

Post A Comment

You need to be a member of the SitePoint Forums to comment on this post. Sign Up

Already a member? Post using your SitePoint Forums account: