0

動的な 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」という数字を追加すると、現在の iframe の高さの横に 100 が追加されます。したがって、iframe の高さが 200 の場合、これを使用すると高さは 200100 になります。

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

1 に答える 1

0

たとえば、「px」の前に「100」という数字を追加すると、現在の iframe の高さの横に 100 が追加されます。iframe の高さが 200 の場合、高さは 200100 になります

+は文字列連結の演算子であり、通常の「プラス」演算子であるため、これは既に文字列コンテキストにいる場合に発生します。

値を数値に変換するためにparseIntonを使用してみてください。次の例では、連結する代わりに 100 を追加します。iFrames[i].contentWindow.document.body.offsetHeight+

iFrames[i].style.height =
  ( parseInt(iFrames[i].contentWindow.document.body.offsetHeight) + 100 ) + 'px';
于 2013-04-03T13:03:51.317 に答える