Вход

Просмотр полной версии : SWFObject не хочет работать в IE


Zones
31.10.2006, 16:49
Не могу понять почему
Есть swf загружающий jpg и url которые прописаны в xml, есть несколько страниц на которых размещается один и тот же swf, c помощью javascript (var url = window.location.pathname) в swf передается часть адреса из адресной строки, в swf он сравнивается и загружает оределенные jpg и url из xml. Разместил баннер на страннице с помощью SWFObject

<raw>
<div id="flash"></div>
<script>
<![CDATA[
var now =new Date();
var url = window.location.pathname;
var fo = new SWFObject("http://developer.intel.ru/download/channel/hpf/hp_banner.swf", "mymovie", "389", "148", "7", "#ffffff");
fo.addVariable('page', url);
fo.addVariable('now', now);
fo.addParam("quality", "hight");
fo.addParam("wmode", "transparent");
fo.write("flash");
]]>
</script>
</raw>

Переменные 'page' и 'now' не попадают в swf в IE, хотя в Mozilla Firefox все работает.

Сам баннер, xml и папка с картинками расположен на другом серваке.

До этого был код

<raw>
<script><![CDATA[<!--
var now =new Date();
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" id=main width=389 height=148>');
document.write('<param name=movie value="http://developer.intel.ru/download/channel/hpf/hp_ban.swf?page=' + window.location.pathname + '&now='+now+'"> <param name=quality value=high> <param name=wmode value=transparent> <param name=bgcolor value=#ffffff> <param name="menu" value="false">');
document.write('<embed src="http://developer.intel.ru/download/channel/hpf/hp_ban.swf?page=' + window.location.pathname + '&now='+now+'" quality=high wmode=transparent bgcolor=#ffffff name=main menu=false width=389 height=148 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>');
document.write('</object>');
//-->
]]>
</script>
</div>
</raw>

И все отлично работает, но выпадающие меню выпадают за баннер, т.е. их не видно, и появляется рамка вокруг баннера для дополнительного клика.

Помогите разобраться пожалуйста.

etc
31.10.2006, 17:02
document.location не пробовал?
now — это объект, он так не передастся во Flash. Нужно передавать, скажем, Unix Timestamp строкой и разбирать её во флеше в дату.

Zones
31.10.2006, 17:23
Все равно не видит в IE, now в принципе не нужен, я его в предъидущем скрипте как случайную переменную передавал в адресной строке, чтоб страница апдейтилась. Главное document.location не видит:(

Кстати пробовал на локальном серваке (Denwer) здесь все работает.

Zones
01.11.2006, 13:27
Ребята, вопрос все еще открыт, неужели никто с этим не сталкивался?

etc
01.11.2006, 13:30
Попробуй escape(document.location.href);

Zones
01.11.2006, 14:11
К сожалению нет, не видит. В Mozilla Firefox работает, а в IE нет, что за глючный броузер:mad:

Zones
01.11.2006, 14:20
Хорошо, а если попробовать старым скриптом

<raw>
<script><![CDATA[<!--
var now =new Date();
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" id=main width=389 height=148>');
document.write('<param name=movie value="http://developer.intel.ru/download/channel/hpf/hp_ban.swf?page=' + window.location.pathname + '&now='+now+'"> <param name=quality value=high> <param name=wmode value=transparent> <param name=bgcolor value=#ffffff> <param name="menu" value="false">');
document.write('<embed src="http://developer.intel.ru/download/channel/hpf/hp_ban.swf?page=' + window.location.pathname + '&now='+now+'" quality=high wmode=transparent bgcolor=#ffffff name=main menu=false width=389 height=148 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>');
document.write('</object>');
//-->
]]>
</script>
</raw>


Вопрос в том, можно ли разместить sfw так, что бы выпадающие меню выпадали поверх баннера, не используя z-index, просто у меня нет доступа к стилям относящимся к выпадающему меню, и я не смогу им присвоить меньший z-index чем у баннера.

etc
01.11.2006, 14:28
Без z-index никак.

Zones
01.11.2006, 16:25
Может быть я неправильно переменную page принимаю page_test=_root.page;
Но почему в Мозилле он работает?

Zones
02.11.2006, 13:22
Ребят, должен же быть какой то выход, на стр. http://www.intel.com/ баннер так же получает переменные

<script type="text/javascript">

if(checkCookie("intelHomepageBanner") == null){
intelBannerFVAR = "begin";
}else{
intelBannerFVAR = "end";
}

var fo = new FlashObject("/homepage/swf/marquee_homepage.swf", "chip", "750", "265", "7", "#FFFFFF");
fo.addVariable("xmlPath", "/homepage/xml/");
fo.addVariable("cssPath", "/homepage/css/");
fo.addVariable("isViewed", intelBannerFVAR);
fo.addParam("wmode", "transparent");
fo.write("marquee_homepage");
И это работает.
Но, я не знаю как эти переменные в swf принимаются, у меня так

page_test=_root.page;

if (_root.page == "/cd/channel/reseller/emea/eng/324918.htm"){
rootNode = slides_xml.firstChild;
totalSlides = rootNode.childNodes.length;
firstSlideNode = rootNode.childNodes[0].firstChild;
currentSlideNode = firstSlideNode;
currentIndex = 1;
updateSlide(firstSlideNode);}

Zones
02.11.2006, 15:48
Проблема решилась с помощью http://www.bobbyvandersluis.com/ufo/ Unobtrusive Flash Objects (UFO) v3.20

To:__etc спасибо за участие.