Как грамотно подключить Flash через JS в IE?

СтаниславZ
На сайте с 17.09.2008
Offline
135
1177

Всем привет!

Уже несколько дней бодаюсь с яваскриптами, в коих я не особо силен.

Гугл также мало чем помог в решении моей проблемы.

Вобщем, условия задачи:

1. На странице сайта подключается яваскрипт (bla.js) с помощью стандартной конструкции:

<script language='javascript' type='text/javascript' src='bla.js'></script>

2. В этом скрипте (bla.js) выводим flash-баннер:

<script type="text/javascript">

<!--// <![CDATA[ var banner = new BannerObject('banner.swf');
// ]]> -->
</script>

3. Сам объект BannerObject определяется в другом JS-файле (bo.js).

Соответственно, перед выводом кода Flash-баннера в файле bla.js, мы подключаем определение объекта.

Получаем код файла bla.js:

<script src='bo.js' type='text/javascript'></script>

<script type="text/javascript">
<!--// <![CDATA[ var banner = new BannerObject('banner.swf');
// ]]> -->
</script>

В результате баннер прекрасно отображается во всех нормальных браузерах, кроме одного. Да-да, не будем показывать пальцем на интернет эксплорер.

Пишет, что определение BannerObject отсутствует.

Причем, если на странице сайта подключать сначала определение объекта (bo.js), а дальше подключить JS с выводом кода баннера (bla.js), то все работает нормально, даже в эксплорере. Но такой вариант мне не подходит.

Как я пытался решить проблему

1. Сначала грешил на кавычки в JS-коде. Экранирование не помогло.

2. Логически поразмыслив, предположил, что при отработке куска кода var banner = new BannerObject('banner.swf'), в память еще не успевает загрузиться bo.js с определением. От этого и выскакивает соответствующая ошибка, что это самое определение отсутствует. Не долго думая, я начал эксперементировать - ставил задержки между подключением bo.js и созданием объекта. Задержки были, результата - не было. Не помогло.

На большее у меня пока фантазии не хватило.

Никто не сталкивался с подобным случаем? Как укротить осла?

IL
На сайте с 20.04.2007
Offline
435
#1
СтаниславZ:
Как укротить осла?

onload / onDOMContentLoaded использовать?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
DiAksID
На сайте с 02.08.2008
Offline
236
#2

подключаем Modernizr

внешний js вызываем типо так:


var banner;

Modernizr.load({
load:'bla.js',
callback:function(){
banner = new BannerObject('banner.swf');
}
});

потом (а лучше до того) читаем манул по Modernizr и вдобавок получаем массу ну ооочень полезных плюшек на будущее (или настоящее)...

show must go on !!!...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий