Each <EMBED> tag is represented here by an object. The embeds are encapsulated in the same JavaObject objects as are used for the Java applets.
Every embedded plugin will respond to different suites of property and method messages although there may be some similarities between some plugins that serve the same purpose.
Be aware that if you are not using some NAME or ID binding to the <EMBED> tags, you may get unexpected results if new embeds are added and you are accessing elements of this array using numeric index values.
In MSIE on the Windows platform, plugins are often recommended for use with the <OBJECT> tag rather than the <EMBED> tag. This can lead to portability issues in your scripts and web pages.
In MSIE version 4, this returns a Collection object instead of an EmbedArray object. MSIE 5 is more consistent with Netscape .
Netscape and MSIE encapsulate plugin/embedded objects in a different way. In MSIE they are objects of the EMBED class. In Netscape they are objects commonly referred to as belonging to the Plugin class although they are really implemented as JavaObject objects. In MSIE, this is an ActiveX object.
There is additional confusion in that there is a plugins array that belongs to the document and another than belongs to the navigator object. They both contain collections of objects but of different types. This is further confused by the fact that the document.plugins array is another name for the document.embeds array.
Because of this confusing situation, the best recommendation is that we refer to document.embeds and navigator.plugins and quietly ignore the document.plugins array. Furthermore we shall refer to Plugin objects as being something the browser can use to play embedded content and Embed objects will be an instance of a plugin that is alive and running in a document.