自动调整IFrame大小

时间:2010-09-27 18:00:55

标签: javascript html css iframe resize

我真的需要别人的帮助>我在IFrame中有一个小图像,点击后会显示另一个图像并向下滑动一点。如何让IFrame根据其内容自动变大或变小?

非常感谢你!

*的修改 在对此进行了更多的研究后,我发现了很多声称(我没有测试过它们)来做我需要的例子,但只是在页面刷新之后。这是我不能做的事情。

2 个答案:

答案 0 :(得分:1)

您可以使用JavaScript方法更改iFrame的大小。然后将该方法与iFrame的OnLoad事件相关联。

没有必要重新编写代码,因为它很短并且在上面的链接中指出了这一点。 有人说它在Opera中不起作用,但试试它是否适合你的需要。

答案 1 :(得分:0)

我认为你可以在加载事件或其中任何一个上没有iframe的情况下自动调整iframe的大小。但我只在ie7 +中测试过,它在3.6+ firefox和chrome中工作。

这就是我想出的。

var $app = $(window[options.name]),
            $appContainer = $("#app-runner");

        window.setInterval(function() {
            var frameEl = $app[0].frameElement,
                frameDoc = 0,
                height = 0;

            if (frameEl.contentDocument !== undefined) {
                frameDoc = frameEl.contentDocument,
                height = frameDoc.height || frameDoc.body.offsetHeight;
            } else if (frameEl.document !== undefined && frameEl.document.documentElement !== undefined) {
                frameDoc = frameEl.document.documentElement,
                height = frameDoc.offsetHeight;
            }
            $appContainer.css("height", height);
        }, 500);

显然,有更好的选择可以获得更好的表现。但这就是我提出的。 HTML很简单。只是把一个iframe包裹在一个id ===“app-runner”的div中。 iframe的高度应为100%。这样,不需要滚动条,应用程序每500ms自动调整大小(更好更快的结果=需要更多的处理器时间)