IE 7中的iframe高度定义

时间:2015-04-29 10:56:10

标签: javascript html css internet-explorer iframe

我在IE7中调整iframe内容的大小时出现问题。 我有一个外部iframe

<IFRAME id=fl_game src="my_iframe_page" frameBorder=0   allowTransparency scrolling=no></IFRAME>

宽度= 100%,高度= 93%

并将我的页面添加到其中。这是一个页面正文

<div id="container">
<div id="game-box">
<div id="flashcontent">

</div>
</div>
</div>
<script type="text/javascript">
swfobject.embedSWF("<%=application.getContextPath()%>/flash/<%= request.getParameter(PARAM_GAME) %>/game.swf", "flashcontent", gameWidth, gameHeight, "10.1", "/flash/expressInstall.swf", flashvars, params);
</script>

在我的页面上,我添加了调整大小事件。

if (window.addEventListener) {
    window.addEventListener("load", resizeGame, false);
    window.addEventListener("resize", resizeGame, false);
} else if (window.attachEvent) {
    window.attachEvent("onload", resizeGame);
    window.attachEvent("onresize", resizeGame);
} else {
    window.onload = function() {resizeGame();};
    window.onresize = function() {resizeGame();}
}

这是我的resizeGame函数

function resizeGame(isIEResize) {
    var flash = document.getElementById('flashcontent');
    var screen = screenSize();
    var width = screen.width;
    var height = screen.height;
    var left = 0;
    var top = 0;
    if (height * 1.5 >  width) {
        height = width / 1.5
    } else {
        width = height * 1.5;
    }
    flash.width = width;
    flash.height = height;
    document.getElementById('flashcontent').style.width = width + 'px';
    document.getElementById('flashcontent').style.height = height + 'px';
    document.getElementById('flashcontent').style.top = '50%';
    document.getElementById('flashcontent').style.left = '50%';
    if (width < screen.width) {
        left = (screen.width - width) / 2 + left;
    }
    if (height < screen.height) {
        top = (screen.height - height) / 2;
    }
    document.getElementById('game-box').style.top = top + 'px';
    document.getElementById('game-box').style.left = left + 'px';
}

function screenSize() {
    var w, h;
    w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
    h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
    return {width:w, height:h};
}

这是一个问题: 在IE7函数中,screenSize()在加载时给出错误的高度。在其他浏览器和IE&gt; 7函数screenSize()给我正确的高度。这就是我无法正确调整内容大小的原因。 当我明确调整窗口大小时,函数screenSize()开始给出正确的高度。 这里有一些屏幕在显式调整之前和之后。 Screen before resizing Screen after resizing

screenSize()仅在IE7中给出奇怪的高度。

我准备添加任何额外信息以找出这种情况的原因。 我希望有人可以帮我找到如何在IE7中定义iframe高度。任何帮助都会有用。

0 个答案:

没有答案