<?xml version="1.0" encoding="UTF-8" ?><oembed><version>1.0</version><provider_name>Чудо{вищные} заметки</provider_name><provider_url>https://miracle.rpz.name</provider_url><author_name>MiRacLe</author_name><author_url>https://miracle.rpz.name/author/miracle/</author_url><title>Третья и недеюсь заключительная часть эпопеи вокруг IE, Flash и ActiveX.</title><html>Исходные данные:
&lt;ul&gt;
	&lt;li&gt;есть html с swf-ками&lt;/li&gt;
	&lt;li&gt;есть IE&lt;/li&gt;
	&lt;li&gt;есть рамка вокруг swf-ок и hint с напоминанием о том что для использования объекта надо сначала его активироваит кликом&lt;/li&gt;
	&lt;li&gt;есть вполне себе самодостаточный инструмент для внедрения флеша в html, который помимо того что замечательно детектит версию плеера, показывает альтернативный контент для тех у кого не обнаружилось необходимого плеера и вообще супер-комбайн - &lt;a href=&quot;http://blog.deconcept.com/swfobject/&quot;&gt;SWFObject&lt;/a&gt;, заодно избавляет от этих злосчастных рамок.&lt;/li&gt;
	&lt;li&gt;ну и наконец есть &quot;сто тыщ милёнов&quot; уже созданных страниц со флешем.&lt;/li&gt;
&lt;/ul&gt;
Имея эти данные и не имея желания переписать все уже созданные страницы для использования SWFObject я задался целью найти менее трудоёмкий путь к избавлению от &quot;рамок&quot;.

&quot;Путь&quot; желающие могут изучить по предыдущим постам, а я лишь резюмирую случившееся:
&lt;ol&gt;
	&lt;li&gt;В первый же день когда я обнаружил рамки, нашёлся неочевидный выход - если через document.write(&#039;&lt;object … &gt;&lt;param..../&gt;&lt;/object&gt;&#039;) IE отображает объект без уродской рамки, то разработчики IE в попыхах сделали заплатку,которая рисует рамку только вовремя рендринга страницы, проверка &quot;на вшивость&quot; показала, что конструкция object.outerHTML=object.outerHTML; даёт тот же эффект, что позволило пройтись по всем getElementsByTagName(&#039;object&#039;) и провернуть над ними &quot;экзекуцию&quot;.&lt;/li&gt;
	&lt;li&gt;Но выяснилось что при этом теряются flashvars (в наших проектах весьма часто используемых) - пришлось весьма шаманским способом их &quot;сохранять&quot; при &quot;магическом переписывании&quot;.&lt;/li&gt;
	&lt;li&gt;Далее выяснилось что подобная операция приводит к утечке памяти и краху IE. Попытки бороться с этим только &quot;оттягивали конец&quot; (гусары - молчать!)&lt;/li&gt;
&lt;/ol&gt;
Тем временем в новых проектах я уже использую SWFObject, максимально упростив работу по его внедрению посредством &lt;a href=&quot;http://miracle.rpz.name/shared/2006/07/function.swfobject.html&quot;&gt;плагина к smarty&lt;/a&gt;, &lt;a href=&quot;http://flog.fluid.com/experiments/swfobject-extension/&quot;&gt;publish extension-а к Flash-у&lt;/a&gt;&lt;strike&gt; и матерного слова&lt;/strike&gt;.

А мысль о том как же бороться с проклятым IE меня не покидает…

В итоге решение оказалось на поверхности - использовать swfobject для переписывания уже внедрённых флешек:
&lt;ol&gt;
	&lt;li&gt;берём object, добавляем перед ним div&lt;/li&gt;
	&lt;li&gt;создаём swfobject, копируем необходимые данные из object&lt;/li&gt;
	&lt;li&gt;удаляем object из DOM-дерева&lt;/li&gt;
	&lt;li&gt;Повторяем до потери пульса&lt;/li&gt;
&lt;/ol&gt;
Итоговый код можно скачать по прежнему адресу &lt;a href=&quot;http://miracle.rpz.name/shared/2006/04/flash_replacer_latest.js&quot; target=&quot;_blank&quot;&gt;flash_replacer (v 0.7)&lt;/a&gt; (особо отмечу что для работы &lt;strong&gt;НЕОБХОДИМ&lt;/strong&gt; swfobject.js, который надо включать в html до flash_replacer-а)
В нём в данный момент нехватает аналогичного &quot;прогона&quot; по embed-ам, а в остальном вполне рабочий код, который на тестовых системах не вызывает падения IE.

&lt;strong&gt;Upd&lt;/strong&gt;: &lt;a href=&quot;/2007/11/10/stop-click-to-activate-and-use-this-control/&quot;&gt;&quot;Это&quot; скоро кончиться&lt;/a&gt;

Technorati Tags: &lt;a href=&quot;http://technorati.com/tag/flash&quot; rel=&quot;tag&quot;&gt;flash&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/ie&quot; rel=&quot;tag&quot;&gt;ie&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/activex&quot; rel=&quot;tag&quot;&gt;activex&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/swfobject%20&quot; rel=&quot;tag&quot;&gt;swfobject &lt;/a&gt;</html><type>rich</type></oembed>