Как динамически добавить flash-объект в html в IE 11?

Я видел рекомендации Adobe, но для встраивания был статический html-код. Я пытаюсь использовать динамически JS, но странная вещь. Flash-плеер был встроен в страницу. Но SWF-фильм - нет. Я думаю, что-то не так с именем параметра. Но не могу догадаться, как нужно поступать правильно.

статический (рабочий)

object type="application/x-shockwave-flash" data="menu.swf" width="1200" height="300">
    <param name="movie" value="menu.swf"/>
</object>

динамически (не работает)

var node=document.createElement('object');
    document.body.appendChild(node);

    node.type="application/x-shockwave-flash"
    node.data="menu.swf"
    //node.name="menu.swf"

    node.width="300"
    node.height="300"

    var p=document.createElement('param');


    p.name="movie"
    p.value="menu.swf"
    node.appendChild(p)

Я пытался сделать много комбинаций, но ничего не получалось

Эта проблема сильно для IE11. Для других версий IE работает следующий код:

var node=document.createElement('object');
    document.body.appendChild(node);

    node.classid= "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
    node.movie="menu.swf"
        ... 

1 ответ

Решение

В моем коде было 2 ошибки.

Основная особенность - добавление объекта в DOM должно быть ПОСЛЕ СБОРКИ объекта:

var node=document.createElement('object');
node.type="application/x-shockwave-flash"
node.data="menu.swf"        
node.width="300"
node.height="300"
document.body.appendChild(node); // must be in end

или же

var node=document.createElement('object');
node.setAttribute('type',"application/x-shockwave-flash")
node.setAttribute('data',"menu.swf")
node.setAttribute('width',"300")
node.setAttribute('height',"300")
document.body.appendChild(node); // must be in end

Следующая функция - в заголовке html был тег:

<meta http-equiv="X-UA-Compatible" content="IE=9">

Если IE11 найдет X-UA-Compatible меньше 11/edge, то необходимо встроить flash старого стиля (classid). Если нет X-UA-Compatible или значение равно 11/edge - тогда нужен новый стиль как type="application/x-shockwave-flash" в html

Другие вопросы по тегам