Для начала, хочу извиниться перед своими читателями за то, что так долго не писал в блог. Не буду рассказывать о большом количестве работы — у всех так. Но, чем больше работы, тем больше тем для этого блога. Сегодняшняя заметка на довольно насущную, но не новую тему. В работе, при использовании SWFObject, очень часто приходилось решать конфликты этого скрипта с другими скриптами. Поскольку бОльшая часть моих проектов связана с Joomla! 1.5, в которой используется библиотека Mootools, то часто приходится решать конфликт SWFObject именно со скриптами Mootools.
Все дело в том, что Internet Explorer просто отказывается открывать страницу, выдавая при этом сообщение типа:
Об этом баге довольно хорошо известно разработчикам IE и они сами говорят почему так происходит http://support.microsoft.com/kb/927917/ но при этом решения не предлагают, кроме того, как использовать IE8 🙂
Эта проблема возникает потому, что дочерний контейнер содержит скрипт, который пытается изменить родительский контейнер. Скрипт код пытается изменить родительский элемент с помощью либо innerHTML либо appendChild метода.
Решение этой проблемы заключается в том, чтобы сказать IE, что потомок не собирается менять своего родителя, во как…:) Сделать это можно простым методом, добавив к скрипту, который генерирует флеш атрибут defer=”defer”.
W3C определяет атрибут defer=”defer” следующим образом:
При использовании данного атрибута пользовательский агент получает информацию о том, что скрипт не будет генерировать содержимое документа (например, нет «document.write» в JavaScript) и, таким образом, агент пользователя может продолжить рендеринг.
На этом все. Коротко но, думаю, довольно ясно. Откланиваюсь, для решения очередных производственных задач, с мыслями о ном посте в скором времени. Удачи.
P>S>
Если в вашей жизни случилось значимое событие, его празднование помогут сделать еще более радужным Музыканты, которых можно найти и выбрать в Клубе Музыкантов Treda.