Получение Flash-фильма с использованием Javascript в IE - PullRequest
1 голос
/ 10 июля 2009

У меня есть флэш-фильм, который мне нужно получить с помощью JavaScript.

Вот как я встраиваю его, используя SWF-объект :

<div id="ap1_mod"></div>
<script type="text/javascript">
    var flashvars = {
        mp3Path: "stop",
        artistName : "",
        trackName : ""
    };
    var params = {
        codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
        src: '/public/flash/ap1_mod.swf',
        quality: 'high',
        pluginspage: 'http://www.macromedia.com/go/getflashplayer',
        scale: 'showall',
        devicefont: 'false',
        bgcolor: '#999999',
        name: 'ap1_mod',
        menu: 'true',
        allowFullScreen: 'false',
        allowScriptAccess:'always', //sameDomain
        movie: '/public/flash/ap1_mod.swf',
    wmode: "transparent",
    allowfullscreen: "true"
    };

    swfobject.embedSWF("/public/flash/ap1_mod.swf", "ap1_mod", "400", "50", "9.0.0", false, flashvars, params);
</script>

и вот как я пытаюсь получить к нему доступ:

function getFlashMovie(movieName) {
  var isIE = navigator.appName.indexOf("Microsoft") != -1;
  return (isIE) ? window[movieName] : document[movieName];
}

Как обычно, он отлично работает в Firefox и Safari, но не работает в IE. Если я добавляю предупреждение: для отображения того, что возвращает getFlashMovie, я получаю «undefined».

Есть идеи?

Большое спасибо

Ответы [ 2 ]

4 голосов
/ 10 июля 2009

Согласно документации, embedSWF заменяет указанный вами элемент объектом, поэтому вы просто должны использовать:

var movie = document.getElementById("ap1_mod");

На самом деле я не проверял, но поскольку элемент div заменяется на элемент объекта, возможно, он не перерегистрирован как свойство окна в IE.

1 голос
/ 10 июля 2009

Не могли бы вы указать id в params и затем просто использовать:

document.getElementById( 'theId' );

Для ссылки на <object>, который создается swfobject?

...