0

javascriptを使用してサイトのiframeのサイズを調整し、iframeが内部のコンテンツと同じ長さになるようにしようとしています。私のコードは次のとおりです。

var iFrames = $('iframe');

function iResize() {        
    for (var i = 0, j = iFrames.length; i < j; i++) {
        iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';
    }
}

console.log( 'resize frame before' );
if ($.browser.safari || $.browser.opera) {
    console.log( 'if' );            
    iFrames.load(function(){
        setTimeout(iResize, 0);
    });

    for (var i = 0, j = iFrames.length; i < j; i++) {
        var iSource = iFrames[i].src;
        iFrames[i].src = '';
        iFrames[i].src = iSource;
    }               
} else {
    console.log( 'else' );
    $( '.iframe' ).load(function() { 
        console.log( 'load' );
        this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
    });
}
console.log( 'resize frame end' );

動作していませんが、console.logを使用すると、表示されない唯一のログは「load」関数内にあります。

ページの下部にあるすべてのJavaScriptを呼び出していますが、それが問題の原因であるかどうかはわかりません。

どんな助けでも大いに感謝されるでしょう。


編集:ソースコードはhttps://github.com/xonorageous/projet-sasにありますサイトはhttp://daniel-lucas.com/experiments-dir/projet-sas/ で表示できます

4

1 に答える 1

1

これはjQueryではるかに簡単に実現できます。

$(function(){

        var iFrames = $('iframe');

        function iResize() {

            for (var i = 0, j = iFrames.length; i < j; i++) {
              iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';}
            }

            if ($.browser.safari || $.browser.opera) { 

               iFrames.load(function(){
                   setTimeout(iResize, 0);
               });

               for (var i = 0, j = iFrames.length; i < j; i++) {
                    var iSource = iFrames[i].src;
                    iFrames[i].src = '';
                    iFrames[i].src = iSource;
               }

            } else {
               iFrames.load(function() { 
                   this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
               });
            }

        });

元のソースについては、こちらをご覧ください> http://css-tricks.com/snippets/jquery/fit-iframe-to-content/

于 2012-12-12T17:45:54.483 に答える