有没有办法查询嵌入式 Flash 元素以确定可以通过 JavaScript 在其上执行的可用方法?
编辑:似乎在 IE 中它很简单
for ( i in flashNode ) {
alert(i);
}
多次点击后,他们将成为最后列举的一些成员。
尽管如此,仍然无法在 Firefox 中确定这一点。
有没有办法查询嵌入式 Flash 元素以确定可以通过 JavaScript 在其上执行的可用方法?
编辑:似乎在 IE 中它很简单
for ( i in flashNode ) {
alert(i);
}
多次点击后,他们将成为最后列举的一些成员。
尽管如此,仍然无法在 Firefox 中确定这一点。
虽然可以通过枚举<object>
IE 中的 DOM 节点来获取回调,但它们与 DOM 节点的所有其他属性混合在一起,如果不保留已知属性列表以进行比较,则无法在程序上区分它们,然后取两组的差值。
这种方法是有问题的,因为属性可以任意添加到任何 DOM 节点。更糟糕的是,它只适用于 IE。Firefox(可能还有其他)不会将回调作为<object>
DOM 节点的属性返回。
我相信它在 FF 和其他浏览器中的工作方式相同,但您可能需要以不同于 IE 的方式获取对 swf 元素的引用。
IE 将使用对象标签,通常带有 id,而 ff/safari/etc 将使用 embed 标签,并且由于您不应该在两个元素上使用相同的 id,人们通常使用 name 属性而不是 id嵌入标签上的属性。
如果您使用诸如 SWFObject 之类的东西来嵌入您的 swf,那么您应该只获取一个或另一个(对象或嵌入),并且无论写入哪个都将使用您指定的任何内容设置 id 属性,因此您可以迭代对象.