0

我有一个无法工作的功能。我在stackoverflow上搜索了同样的问题,但没有找到任何解决方案......

所以这是我的 index.php 中的代码片段。我有一个带有 news/index.php 的 iframe。

<div id="hirek1">
    <iframe id="newsframe" src="news/index.php"></iframe>
</div>
<script type="text/javascript" src="mutato.js">milyenmagas();</script>

这是news/index.php。它的内容是一个 php 代码,其输出高度根据其中新闻的长度动态变化:

<div id="hirekmagassag"><!--content--></div>
<script type="text/javascript" src="mutato.js">milyenmagas();</script>

函数(mutato.js):

function milyenmagas()
{
    if(document.getElementById('hirekmagassag') != null)
        var divmag = document.getElementById('hirekmagassag').offsetHeight;
        var framemag = (divmag + 10 + 'px');
    if(document.getElementById('hirek1') != null)
        var iframe = document.getElementById('hirek1').getElementsByTagName('iframe')[0];
    if(document.getElementById('hirek1') != null)
        iframe.height = framemag;
    if(document.getElementById('hirek1') != null)
        iframe.style.height = framemag;
setTimeout('milyenmagas();', 1000);
}

因此,该函数的重点是将 iFrame 的高度设置为等于(+10 像素以避免滚动条)与其中内容的高度。正如您在上面看到的,该函数在两个 div 之后调用,并且由于它们被调用两次(在每个文件中一次),ifs 用于整理两个 php 文件之间的操作。

这对我现在不起作用。除非我将iframe.heightiframe.style.height的值从变量framemag更改为例如“500px”,否则它可以完美运行。我不明白我做错了什么。即使我调用alert(framemag); 它抛出了应该作为样式参数完美工作的正确字符串。

我在这里想念什么?

4

1 回答 1

0

尝试

function milyenmagas() {
    var hirekmagassag = document.getElementById('hirekmagassag');

    if (hirekmagassag != null) {
        var divmag = hirekmagassag.offsetHeight;

        var framemag = (divmag + 10) + 'px';

        var hirek1 = document.getElementById('hirek1');
        if (hirek1) {
            var iframe = hirek1.getElementsByTagName('iframe')[0];
            console.log(framemag)
            iframe.height = framemag;
            iframe.style.height = framemag;
        }

    }
    setTimeout('milyenmagas();', 1000);
}

演示:Plunker - 调整消息 div 的大小以调整 iframe 的大小

于 2013-04-23T03:10:42.790 回答