当OnResize没有注意到你调整大小时

时间:2010-10-28 19:03:12

标签: javascript jquery

窗口 - > IFRAME - > DIV

我有一个窗口,有一个iframe,有一个div。 div可以滚动内容,但不能完全控制父窗口,我必须决定div在iframe中的大小。

为此,我有以下代码JavaScript(请原谅jQuery /直接JavaScript的混合):

    $(window.parent).resize(function () {
        var frameHeight = parent.document.getElementById('IFRAME_banner').offsetHeight - 52;
        $("div.ajax__tab_body").height(frameHeight);
    });

只要您通过拖动其中一个角来调整窗口大小,此代码就可以正常工作。如果通过拖动窗口底部垂直调整大小,则不会触发此事件,并且div无法正确调整大小。

我使用iframe作为参考,因为它似乎是由于父窗口所做的事情而自动调整自身大小。 (这完全是在MS CRM Dyanamics中......所以谁知道幕后发生的事情)

有谁知道为什么会这样?我需要做些什么才能解决这个问题?

Hackish在这个例子中没问题。整件事情都很糟糕。

2 个答案:

答案 0 :(得分:1)

黑客回答:您可以创建一个每秒钟左右触发一次的计时器并检查尺寸。如果它们不符合您的预期,请手动调用事件功能。

答案 1 :(得分:0)

resize事件在不同浏览器上的触发方式不同。 FF重复触发,IE仅在调整大小完成后才会触发。你不能指望它。使用计时器并轮询当前大小。