Элегантный способ заставить ExternalInterface работать со всеми браузерами

#javascript #html #flash #externalinterface

#javascript #HTML #flash #externalinterface

Вопрос:

Я хочу вызвать функцию внутри Flash movie из javascript, используя ExternalInterface класс. Проблема в том, что для того, чтобы заставить его работать с Firefox, мне нужно использовать embed элемент, а с остальными я должен получить object элемент. Чтобы решить эту проблему, я присвоил этим двум элементам разные идентификаторы и в зависимости от пользовательского агента выбираю тот или иной:

  function getMovie(movieName) {

    alert(navigator.userAgent);
     if (navigator.userAgent.indexOf("Firefox") != -1) {
         return document["flash_embed"];
     } else {
         return document["flash_object"];
     }
 }
  

Это работает, но не очень элегантно и может не работать с другими браузерами… Знаете ли вы лучший способ сделать это?

Ответ №1:

Используйте swfobject для встраивания вашего flash-фильма, а затем используйте его для получения правильного идентификатора.

Комментарии:

1. есть какая-то конкретная причина для этого?

2. Коллега не хочет добавлять полный скрипт только для того, чтобы сделать это.