2012-03-16 2 views
3

У меня есть полноэкранное флеш-ролик, который загружается и отображается правильно в firefox и chrome. Однако в IE он отображает ширину 1/3. Встроенный код достаточно прост:IE отображает флеш-ролик с неправильной высотой с использованием swfobject

<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script src="/javascripts/swfobject.js?1331841761" type="text/javascript"></script> 
    <script type="text/javascript"> 
     //<![CDATA[ 
swfobject.embedSWF('/bin/SglWeb.swf','flashContent','100%','100%','11.0.0','/expressInstall.swf',{},{},{}); 
    //]]> 
    </script> 
    <style> 
     body { margin: 0px; overflow: hidden; } 
    </style> 
    </head> 
    <body> 
    <div id="flashContent"> 
     <p><a href="https://www.adobe.com/go/getflashplayer"><img src="https://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p> 
    </div> 
    </body> 
</html> 

Если я изменю:

swfobject.embedSWF('/bin/SglWeb.swf','flashContent','100%','100%','11.0.0','/expressInstall.swf',{},{},{}); 

в

swfobject.embedSWF('/bin/SglWeb.swf','flashContent','1024','768','11.0.0','/expressInstall.swf',{},{},{}); 

IE уважает высоту, но я действительно хотел бы использовать 100% высоты. Что я могу делать неправильно?

Испытано в IE 8, Windows XP, Flash Player 11, SWFObject v2.0

+0

2 вещи, которые я бы попробовал (без ответа прямо), задав цвет фона в div, чтобы определить, имеет ли размер Div неправильный или только встроенный компонент, если вы см., что размер div неправильно пытается изменить ширину самого div, вторая вещь, которую я бы поставил, если первая неудача обновилась до последней версии swfobject 2.2 – shaunhusain

+0

нажмите f12 и посмотрите, что такое рендеринг ... – loxxy

+0

Спасибо за предложения , но swfobject заменяет div кодом , поэтому любой стиль, который я добавляю в div, игнорируется. – Egon

ответ

2

Это звучит для меня, как вы столкнулись с пробле- hasLayout в IE. Поскольку ваш div не указывает высоту, а ваш флеш-ролик имеет высоту 100%, IE тупит и возвращается к высоте по умолчанию (я думаю, что он находится в диапазоне 300 пикселей). This is a good article on hasLayout. Вы можете попробовать что-то вроде добавления отображения: inline-block или min-height: anyvalue к вашему контейнеру div, чтобы заставить hasLayout в IE и посмотреть, работает ли он.

+0

Спасибо за ваш ответ. К сожалению, ни один из хакеров, о которых вы говорили, не работал. Я буду продолжать читать вашу ссылку и продолжать пробовать другие подходы, и я сообщу вам результат. – Egon

+0

Вы все еще используете высоту: 100%? Вы пытались установить высоту флеш-ролика (для целей тестирования)? – huzzah

+1

Вы были правы. Фокус в том, что swfobject заменяет div вместо того, чтобы вставлять его внутри. Я должен был проинструктировать swfobject, чтобы добавить это поведение: 'swfobject.embedSWF ('/ bin/SglWeb.swf', 'flashContent', '100%', '100%', '10.0.0', '/ expressInstall.swf' , {}, {}, {style: "width: 100%; height: 100%; position: absolute"}); ' – Egon

4

Другим возможным решением этой проблемы: Мои рельсы 3 сервера автоматически добавив следующий HTTP-заголовок:

X-Ua-Compatible: IE=Edge,chrome=1 

Что изменилось 8 поведение в IE. Я удалил его, и он также решил проблему. Множество деталей, которые следует учитывать при работе с IE:/

+1

Вау! Хорошая добыча! Моя мантра «все, что выглядит круто на interwebs, безусловно, НЕ работает в IE» – huzzah

Смежные вопросы