将像素添加到动态iframe高度

时间:2013-04-03 12:54:33

标签: javascript iframe height

我正在尝试向动态iframe高度添加固定数量的像素。如何向iframe高度添加静态像素数?我正在使用此javascript根据其内容调整iframe高度:

    $(document).ready(function()
{
    // Set specific variable to represent all iframe tags.
    var iFrames = document.getElementsByTagName('iframe');

    // Resize heights.
    function iResize()
    {
        // Iterate through all iframes in the page.
        for (var i = 0, j = iFrames.length; i < j; i++)
        {
            // Set inline style to equal the body height of the iframed content.
            iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';
        }
    }

    // Check if browser is Safari or Opera.
    if ($.browser.safari || $.browser.opera)
    {
        // Start timer when loaded.
        $('iframe').load(function()
            {
                setTimeout(iResize, 0);
            }
        );

        // Safari and Opera need a kick-start.
        for (var i = 0, j = iFrames.length; i < j; i++)
        {
            var iSource = iFrames[i].src;
            iFrames[i].src = '';
            iFrames[i].src = iSource;
        }
    }
    else
    {
        // For other good browsers.
        $('iframe').load(function()
            {
                // Set inline style to equal the body height of the iframed content.
                this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
            }
        );

    }
}

);

当我在'px'之前添加例如数字'100'时,它只会将100放在当前iframe高度旁边。因此,如果我的iframe高度为200,如果我使用它,高度将为200100:

iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + '100px';

1 个答案:

答案 0 :(得分:0)

  

当我在'px'之前添加例如数字'100'时,它只会将100放在当前iframe高度旁边。因此,如果我的iframe高度为200,则高度将为200100

由于+是字符串连接的运算符以及普通的“plus”运算符,因此当您已经在字符串上下文中时会发生这种情况。

尝试使用parseInt上的iFrames[i].contentWindow.document.body.offsetHeight将其转换为数字,以便以下+ 添加 100而不是连接它:

iFrames[i].style.height =
  ( parseInt(iFrames[i].contentWindow.document.body.offsetHeight) + 100 ) + 'px';