When accessing the
.getElementsByTagName("*") properties on the DOM representation of an <object> element, the resulting NodeSet will always be empty.
Proof of Concept:
<object> <param name="name" value="value"/> <param name="name2" value="value2"/> <param name="name3" value="value3"/> </object>
var obj = document.getElementsByTagName("object"); // => <object/> obj.all // =>  obj.getElementsByTagName("*") // =>  obj.getElementsByTagName("param") // => [ <param/>, <param/>, <param/> ] obj.firstChild // => <param/>
So far, my quick-and-dirty kludge is just to replace “*” with “param” and hope that the user is actually using an object to hold params, and not some other crazy combination.
Which reminds me – has anyone ever seen an example of an <object> element containing non-param elements on a real, live, web page – somewhere in the wild? The HTML spec says that the <object> element can contain any HTML, but that sounds a little bit too crazy for my tastes.