IE使用swfobject显示错误高度的flash影片

时间:2012-03-16 14:07:11

标签: html flash flex internet-explorer

我有一个全屏Flash影片,可以在firefox和chrome中正确加载和显示。但是,在IE中,它以宽度的1/3显示。嵌入代码相对简单:

<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

中测试

2 个答案:

答案 0 :(得分:4)

此问题的另一种可能解决方案:我的rails 3服务器自动添加以下HTTP标头:

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

这改变了IE的8种行为。我删除它,它也解决了这个问题。使用IE时要记住的很多细节:/

答案 1 :(得分:2)

听起来像你在IE中遇到了恼人的hasLayout问题。因为你的div没有指定高度,并且你的flash电影的高度为100%,所以IE被难倒并恢复到默认高度(我认为它在300px范围内)。 This is a good article on hasLayout。您可以尝试添加display:inline-block或min-height:anyvalue到容器div以强制IE上的hasLayout并查看它是否有效。