forked from swfobject/swfobject
-
Notifications
You must be signed in to change notification settings - Fork 0
SWFObject Release Notes
pipwerks edited this page Oct 9, 2011
·
3 revisions
- Release (updated version number only)
- Fixed an additional bug regarding callbacks in Firefox
- Fixed a bug in the new Internet Explorer detection routine that was introduced by alpha11
- Fixed a bug regarding callbacks in Firefox
- Fixed a bug in the getObjectById method when using Internet Explorer and static publishing with no plug-in installed
- Updated header notice
- Removed conditional compilation directives as a proprietary feature test for IE, because it hinders developers creating their own minified JavaScript files. Now we reuse the SWFObject Flash detection mechanism instead
- Issue 250: ? is grabbed from query string when calling
swfobject.getQueryParamValue()
with arguments - Issue 265: update Flash detection for non IE browsers to include build/dev versions (enhancement request by Flash Player team)
- Detected user agent properties are now public via
swfobject.ua
, which is especially handy for SWFObject plug-ins - Issue 277: allow option to see alternative content (e.g. background image) while waiting for the swf file to load. Now a developer can switch off SWFObject's default hide/show behavior with
swfobject.switchOffAutoHideShow()
- Fixed a bug that caused memory leaks in IE
- File size optimization to crunch everything within the max 10Kb file size
- Issue 154: Updated Express Install functionality
- Issue 126: Callback-method on success or failure of embedding for both static and dynamic publishing; fixed an issue and changed the API of the event object.
- Issue 136: Express Install inherits all parameters and attributes from the targeted SWF
- Issue 172: Express Install redirect not redirecting after updating Flash Player when using multiple GET variables
- Updated the copyright to include 2009
- Web authors can now reuse SWFObject's Express Install and call it via the API via
swfobject.showExpressInstall(att, par, replaceElemIdStr, callbackFn)
- Issue 126: Callback-method on success or failure of embedding for both static and dynamic publishing
- Issue 124: swfobject.removeSWF method can be improved for Internet Explorer
- Detection using the plugins collection can detect either release or build version number (not both)
- Issue 155: Some installers provided by Adobe include an incorrect plugins collection item's description
- Issue 198: Incorrect browser imports can result in multiple Flash Player entries in the plugin collection
- Issue 222: Now also supports Safari + badly authored HTML pages without a
head
element
- Issue 165: An update to the new DomContentLoaded emulation for Internet Explorer
- Issue 201: An update of the createCSS method, adding two new optional parameters (mediaStr and newStyleBoolean)
- Issue 165: An update to the new DomContentLoaded emulation for Internet Explorer
- Issue 201: When using the createCSS method, only create 1 dynamic stylesheet in total instead of 1 stylesheet per call
- Issue 197: Filtering properties in Object.prototype then storing back to an object defeats the purpose
- Issue 156: Removal of code for old browsers and Flash Player versions
- Issue 162: New test for the availability of the DOM when the script is executed
- Issue 165: New DomContentLoaded emulation for Internet Explorer
- Updated years in copyright notice
- Fixed a bug in the getQueryParamValue method (issue 115)
- Added one additional try-catch block to avoid potential script crashes in Internet Explorer (issue 76)
- Fixes SWFObject 2.0 and External Interface related memory leaks (issue 84)
- New explicit SWF removal code - especially needed to completely and safely remove a SWF in IE - via the new
swfobject.removeSWF(objectIdString)
method (issue 76) - Solves IE 5.0/5.5 support issues (issue 77)
- Fixes alternative content display issues for Safari 3+ with plug-ins disabled (issue 74)
- Additional object detection tests to avoid script errors in IE in case an object element is removed during a visit (issue 86)
- Removal of
isDomLoaded
tests from various methods of the public API to enable that dynamically inserted scripts - including bookmarklets - can use these functions (e.g. theswfobject.createSWF
andswfobject.removeSWF
methods) (issue 88) - Dynamic publishing could previously fire multiple instances of Adobe Express Install (issue 87)
- Shortened version strings can be used, so "9.0.0" can now be written as "9" (issue 81)
- Fixed dynamic publishing reference issues when using a shared
param
orattributes
JavaScript Object (issue 90 and issue 91) - Added a filter to the
swfobject.getQueryParamValue
method to secure the library from XSS attacks
- Added an extra check in the Internet Explorer object cleanup code to test if the object still exists before calls are made upon it (e.g. to avoid errors when an object gets deleted by scripting); (issue 49)
- Optimized the visibility mechanism a bit: now only dynamic style sheets are added when the DOM hasn't been loaded yet, otherwise the element.style.visibility property is set; (issue 51)
- Includes a couple of file size optimizations
- A few code enhancements, e.g. consistent typing for internal version numbering
- Includes file size optimizations resulting in a 19% smaller file size, by:
- Use of constants for recurrent Strings
- Use of only one
var
keyword per scope (where structure and readability wasn't hurt) - Using YUI Compressor instead of Dojo Shrinksafe
- IMPORTANT! API updates:
-
swfobject.createSWF(attObj, parObj, el)
has now becomeswfobject.createSWF(attObj, parObj, replaceElemIdStr)
-
swfobject.createSWF(attObj, parObj, replaceElemIdStr)
now returns the newly created object element, a request made by many JavaScript developers, e.g. (issue 17) - A dynamically embedded object element (using
swfobject.createSWF
orswfobject.embedSWF
) now automatically inherits theid
attribute from the alternative content container element if noid
is defined for the object element in theattObj
JavaScript Object, also a request made by many web authors, e.g. (issue 17 and issue 19)
-
- Fixed an express install related bug: percentages for width and height are not supported; (issue 28)
- Added workaround for potential Norton AV issue; (issue 33)
- A series of code enhancements as described in (issue 27)
- Fixed addDomLoadEvent issue for Internet Explorer: if embedSWF was called after the DOM was loaded (e.g. AJAX-loaded content), the resultant call to createSWF was incorrectly run (an old cached version was shown instead) (issue 22)
- Added the
swfobject.getObjectById(objectIdStr)
andswfobject.getQueryParamValue(paramStr)
methods to the JavaScript API - Fixed an express install callback related bug (issue 14)
- Extended the JavaScript API to suit the needs of JavaScript developers
- Removed the
fixOutOfMemoryError
method, and added the solution of the issue to the FAQ for web authors
- Added extra checks to ensure safe object enumerations
- Fixed Safari bug:
class
is an ECMA4 reserved keyword, so for dynamic publishingstyleclass
should be used instead to specify theclass
attribute
- Added documentation to the uncompressed swfobject.js file
- Removed the 'click-to-activate' active content fix for the static publishing method, because the Opera fix appears to be unstable (it only works for some versions of Opera 9+) and in Internet Explorer 6+ the 'click-to-activate' mechanism is only removed after an entire page including all its assets are loaded (by replacing a SWF by itself), which has the major drawback that this SWF will be reinitialized and animations/sound/video will restart playing. For now the static publishing method does not offer a solution for the 'click-to-activate' active content problem. Those who by all means want to avoid this mechanism should use the dynamic publishing method instead. (issue 6)
- Fixed script crash in Internet Explorer when ActiveX is disabled (issue 8)
- Added an additional test within the
callDomLoadFunctions
method for Internet Explorer on Windows (which tries to append and remove a childNode and catches a thrown error) to avoid that it executes the DOM dependent part of the script too early (in this case it degrades to unload) - Made sure the script degrades properly in case no Flash plug-in is installed (we introduced a flow bug in beta1)
- Also applied the
fixOutOfMemoryError
method (occurs when unloading a web page in IE using fp9 and multiple SWFs using ExternalInterface) andfixObjectLeaks
method (removes hanging audio/video threads when unloading a web page in IE using fp8+ and innerHTML/outerHTML) to the dynamic publishing method (flow bug) - Fixed a broken-loading-file-reference bug in Internet Explorer (when the display of alternative content is forced, we now wait until the onload event fires to remove the hidden SWF)
- Did some file size optimization (e.g. removed some unnecessary feature tests)
- We fixed a bug in the compressed version of the library, which caused that the active content fix was never applied to Internet Explorer 6+
- We changed both the project's and library's name from SWFFix to SWFObject
- For the static publishing method (option 1) the second argument (Flash player version string) is now required
- To make the library less dependent on user agent string detection, we now detect Internet Explorer's and Opera's features by using proprietary feature testing (conditional compilation for Internet Explorer and
window.opera
andwindow.opera.version
for Opera). The user's operating system is now determined based on a cascading approach, with the following priority: Internet Explorer condtional compilation,navigator.platform
based detection,navigator.useragent
based detection - We added a
try
-catch
block around thedocument.write
statement (that inserts a deferred script to simulate aDOMContentLoaded
event for Internet Explorer) to ensure it properly degrades to theonload
event and to avoid anOperation Aborted
error (which indicates that you try to access Internet Explorer's DOM, while it is locked and it is not ready for DOM manipulations yet) - We added a lot of feature tests to ensure that every feature is tested before it is called upon. This to improve the library's overall stability and future proofness
- We fixed small flow bug in the
main()
function - We merged the
fixActiveContent()
andfixIEActiveContent()
methods - We ran the library through the JSLint JavaScript verifier and polished some code here and there to ensure the library's syntactical correctness
- The API got an overhaul to optimize the library's usability. It is more simplified and looks like:
- SWFFix.registerObject(objectIdStr, swfVersionStr, xiSwfUrlStr); We removed the object notation.
- SWFFix.embedSWF(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj); Is new and replaces the previous dynamic embed method. It now also supports express install and is closer to the SWFObject/UFO notation.
- SWFFix.getFlashPlayerVersion();
- SWFFix.hasFlashPlayerVersion(versionStr);
- We compressed the library with Dojo Shrinksafe for file size optimization, and created a SRC directory that includes the uncompressed library (for means of development) and express install source files
- We fixed an express install related bug and now check if a SWF's height is 137px (instead of the earlier 130px) or higher to avoid Download.Fail status calls to fire
- Initial release