我的<object>忽略其父级的高度</object>

时间:2010-08-23 15:28:59

标签: javascript html

我的页面中有一个flash对象,我希望尽可能大。页面几乎是裸露的,除了一件事:顶部的一个栏。

HTML:

<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
// setting flashvars, params, attributes
//...
// adding swf
swfobject.embedSWF("myflash.swf", "myAlternativeContent", "100%", "100%", "9.0.114", "swfobject/expressInstall.swf", flashvars, params, attributes);
</script>
</head>
<body>
<div id='banner'>
this is random text, could be an image, could be a menu, with a certain random height i cannot predict
</div>
<div>
    <div id="myAlternativeContent">
    </div>
</div>
</body>

当我在IE 8中查看此页面时,flash对象的确高度为100%,但它是浏览器窗口,而不是父div。这意味着我得到一个垂直滚动条,如果我滚动它,闪光灯会填满整个窗口。这不是我想要的。我希望页面没有滚动条,闪光灯具有窗口其余部分的高度。

我用javascript尝试了这个解决方案(在结束div之后):

<script language="javascript" type="text/javascript">
function getWindowHeight() {
  // by http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
  var myHeight = 0;
  if( typeof( window.innerWidth ) == "number" ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in "standards compliant mode"
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}
var otherheight = document.getElementById("banner").offsetHeight;
document.getElementById("myAlternativeContent").parentNode.style.height = (getWindowHeight() - otherheight) + "px";
</script>

但是后来我发现即使父div的高度设置为正确的数量,flash对象也会完全忽略它并且不会重绘或者其他任何东西,只是保持它的快乐高度。

我怎样才能完成我想做的事情?没有滚动条,顶部有横幅,然后窗口的其余部分充满了我的flash对象?

1 个答案:

答案 0 :(得分:0)

修改后的答案:尝试修改对swfobject.embedSWF的调用,以便正确计算您给出的高度,而不是%年龄 - 即将其设置为:

(getWindowHeight() - otherheight)

如果调整窗口大小,您还需要小心......(参见point #1)。这是您当前代码的问题

相关问题