Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   HTML/DHTML/CSS/JS/VB (http://www.flasher.ru/forum/forumdisplay.php?f=66)
-   -   SWFObject не хочет работать в IE (http://www.flasher.ru/forum/showthread.php?t=87203)

Zones 31.10.2006 16:49

SWFObject не хочет работать в IE
 
Не могу понять почему
Есть 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);}


Часовой пояс GMT +4, время: 13:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.