2009-06-26 1 views
4

Есть ли способ запросить встроенный элемент flash для определения доступных методов, которые могут быть выполнены на нем через JavaScript?Как просмотреть доступные обратные вызовы, выставленные элементом флэш-памяти

Edit: Оказывается, что в IE это так просто, как

for (i in flashNode) { 
    alert(i); 
} 

После долгого нажатия, они будут один из самых последних членов, перечисленных.

Все еще не в состоянии определить это в Firefox.

+0

Почему голос? –

ответ

2

Хотя возможно получить обратные вызовы путем перечисления узла DOM <object> в IE, они смешиваются со всеми другими свойствами узла DOM, и они не могут быть прогматически выделены, не сохраняя список известных свойств сравните их и затем разделите два набора.

Этот подход сомнительный, поскольку свойства могут быть произвольно добавлены к любому узлу DOM. Хуже того, он работает только в IE. Firefox (и, возможно, другие) не возвращает обратные вызовы как свойство узла DOM <object>.

1

Я считаю, что это работает так же в FF и других браузерах, но вам может понадобиться получить ссылку на ваш SWF-элемент иначе, чем IE.

IE будет использовать тег объекта, как правило, с идентификатором, а ff/safari/etc будет использовать тег embed, а так как вы не должны быть одним и тем же идентификатором на двух элементах, люди обычно используют атрибут name вместо атрибута id в теге embed.

Если вы используете что-то вроде SWFObject для встраивания ваших swfs, тогда вы должны получить только тот или иной объект (объект или вложение), и в зависимости от того, что будет написано, будет иметь атрибут id, заданный с тем, что вы укажете, так что вы могли бы итерации по объекту.

+0

Нет, вы можете использовать document.getElementByID ('whatever-flash-element'), чтобы получить элемент flash во всех браузерах. Кроме того, я попробовал тот же метод в FF3, но не повезло. –

+0

Ну, я немного пошутил и не мог найти явного способа перебора вещей. Я думаю, вы можете застрять на этом. Если у вас есть доступ к swf, вы можете попытаться декомпилировать его и искать внешние ссылки, или вы могли бы спросить создателя swf для списка функций :) – Geoff