SWFObject Readme http://blog.deconcept.com/swfobject/ v1.5 SWFObject is a small Javascript file used for embedding Macromedia Flash content. The script can detect the Flash plug-in in all major web browsers (on Mac and PC) and is designed to make embedding Flash movies as easy as possible. It is also very search engine friendly, degrades gracefully, can be used in valid HTML and XHTML 1.0 documents, and is forward compatible, so it should work for years to come. * SWFObject is the Flash embed script formerly known as FlashObject. The name was changed after a request from Adobe for legal / trademark reasons. Created: 10-14-2004 Last Updated: 02-28-2007 By: Geoff Stearns geoff@deconcept.com http://blog.deconcept.com/ -------------------------- Copyright (c) 2007 Geoff Stearns Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------- Files: readme.txt - this file swfobject.js - SWFObject javascript file - this will need to be included in any html file that uses the SWFObject embed. This file is compressed with dojo shrinksafe (http://alex.dojotoolkit.org/shrinksafe/) to save bandwidth. To view the uncompressed version, look at source/swfobject_source.js swfobject.html - sample html file showing how to use the SWFObject embed expressinstall.html - sample html file showing how to use SWFObject with the ExpressInstall feature fullpage.html - sample html file showing a full page (100% by 100% flash embed) flashversion.html - sample page showing how to use SWFObject to determine the installed player version so_tester.swf - sample swf used to test basic SWFObject functionality expressinstall.swf - swf used to invoke the Express Install feature for users that have Flash Player 6.0.65 or higher already installed source/so_tester.fla - sample fla for SWFObject testing. Open this to see how to use the ExpressInstall features source/swfobject_source.as - uncompressed swfobject.js file - only provided for viewing, you should use the production version (swfobject.js) on your website These files are provided 'as is,' with no technical support provided, but if you find a problem, please e-mail me at geoff@deconcept.com or send an e-mail to the SWFObject mailing list (http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com) so I can update/correct the problem and provide an updated version. ---------- Changelog: 03-05-2007 (v1.5) [fixed] updated expressinstall.swf to fix a scaling issue after the update was finished. 02-28-2007 (v1.5) [changed] Express Install functionality was updated to support projects that use AS3 (or Flex 2 projects). This means new syntax when using Express Install (see expressinstall.html for an example) [fixed/changed] adjusted cleanup code to only call cleanUpSWFs() if the user is using IE and has Flash Player 8 or higher (because the streaming audio + out of memory error only affects these systems) [fixed/changed] adjusted cleanup code to only be called once - this fixes issues people had when accidentally including the js file more than once [changed] added support for IE Mobile devices with Flash Player installed [changed] added support for style attributes on the object/embed tags - mainly for compatibility with swfIR (http://www.swfir.com) 8-2-206 (v1.4.4) [fixed] The v1.4.3 introduced a new issue: When clicking links with href="javascript:..." it would cause all the swf files on the page to disappear (it was triggering the cleanUpSWFs function prematurely). This is now fixed, and all users should upgrade immediately to v1.4.4. 7-25-2006 (v1.4.3) [updated] added in a fix for a bug introduced in Flash Player 9 that would cause an error in IE "Line 56: Out of memory". This was caused by new code inserted by Flash Player 9, and SWFObject 'fixes' this by removing the 'bad' code that fp9 inserts and replacing it with code that does not cause the 'Out of memory' error. 6-2-2006 (v1.4.2) [updated] added one more fix for a related issue to the audio streaming bug listed below, thanks to Ben Longoria for the fix [updated] updated the detection code for IE/ActiveX browsers to fix a crash that could occur when the user had Flash Player 6.0.21 or 6.0.23 installed (Thanks to Michael Williams at Adobe for the code to fix this (and the Adobe detection kit)) [fixed] updated the getQueryParamValue method to fix a bug that would return the wrong value if you had two variables that ended with the same string (Thanks to Aran Rhee for discovering the issue and providing a fix) [fixed] fixed a couple of strict js warnings that crept back in sometime after the 1.4 update 5-17-2006 (v1.4.1) [updated] added code to 'clean up' Flash Player instances on window unload because of a bug when using innerHTML and streaming media. 4-21-2006 (v1.4) [changed] FlashObject is now known as SWFObject because of legal reasons. For more info, read: http://blog.deconcept.com/2006/04/21/flashobject-to-become-swfobject/ Note that using the code 'new FlashObject()' will still work because I've added a link from FlashObject to deconcept.SWFObject, but you should update your code to reflect the new name as soon as possible to avoid future complications [updated] SWFObject.write() now returns true or false depending on whether the SWF content was written to the page or not (true if it is, false if it is not) [changed] the 'com' namespace has been removed, now everything lives in the 'deconcept' namespace only, instead of 'com.deconcept' namespace. [updated] made a couple very small changes to get rid of warnings in the mozilla script debugger when the debugger was in strict mode [updated] added 'the mark of the web' to the examples pages to (hopefully) prevent the ActiveX bar from appearing at the top of the page when viewing these files locally in IE on Windows. 3-26-06 [fixed] bug found in the location.hash handling in the getQueryParamValue() call. Changed document.location.href.hash to document.location.hash. 2-14-06 [fixed] bug found in the custom ExpressInstall message. When publishing the fla as a Flash 8 swf, the upgrade message would not show up. This is due to the way the Flash 7 player displays text and outlines (among other things). To avoid issues with custom upgrade messages, you should use device fonts, and either remove outlines from objects, or set them to 'hairline'. There may be other issues to avoid, so if you have issues with items not showing up in older Flash player versions, try simplifying the objects. 2-09-2006 [fixed] bug in the getHTML method - the closing tag wasn't being appended unless you passed in at least 1 flashvar, and fixed some closing slashes on the param tags. 1-25-2006 [fixed] Found a small bug in this latest version that caused the Flash movie to not load on IE 5.01 on PC. The bug has been fixed and the zip/source has been updated. Please update to the latest version if you are using 1.3 and have a lot of users using IE 5.01 (does anyone have a high number of those anymore?). The new version number is 1.3b. 1-18-2006 [fixed] Bug that would keep users with Flash Player 6 installed from using ExpressInstall 1-12-2006 [Changed] When calling FlashObject.write() you can now pass an HTMLElement reference. Previously you needed to pass a string (the Id of the element to write the Flash content to) [Changed] Made changes to the plugin detection routine that would cause a crash in browsers running certain versions of the Flash plugin. Read a comprehensive description of the issue and the fix. [New] You may now specify a specific URL to redirect the user to after they complete an ExpressInstall process. Previously the script would always redirect them to the page the Flash movie was embedded in, but when using a popup window this is not always the best solution. See the ExpressInstall section of the FlashObject page for more information. [New] FlashObject now integrates seamlessly with the Javascript Integration Kit. More information on this is forthcoming in a new blog post. [New] I’ve used Dojo Shrinksafe to strip out the extra space in the swfobject.js file. FlashObject now weighs in at just a hair over 6kb. Super tiny! The FlashObject ’source code’ (un-shunken Javascript) is included in the FlashObject zip file in the ’source’ folder. I also made a number of small syntax changes to reduce the size even more. 8-1-2005 -fixed bug in detection that caused redirection to fail and threw an error if no flash player was installed -updated IE detection code - no more VBscript at all, and no more loop to check the version installed. 7-22-2005 -added minor version and revision detection -fixed a few small bugs (one would have caused SWFObject to fail once a user tries to detect a flash player version larger than 9) -rewrote so it's all in it's own namespace (Thanks to Toby Boudreaux for the excellent code tips http://www.tobyjoe.com/) - *** note that FlashObject.write() now requires an element ID - it will no longer work with no id specified - *** please note that there is no more bypass text or altTxt variables, you should place your alternate content in a div, and then have FlashObject write to that div, thereby replacing the alternate content. 5-17-2005 [changed] the 'id' attribute on the embed tag to 'name' instead. This change enables the use of features that require liveconnect or other javascript communication in browsers that use the embed tag. (later changed so the embed tag has both id and name) 3-31-2005 v1.1 update, multiple changes, mostly some code optimization and some changes in how the script displays alt content. see: http://blog.deconcept.com/2005/03/31/proper-flash-embedding-flashobject-best-practices/