2012-01-12 5 views
2

JavaScriptを使用して読み込み時にiframeのサイズを変更できない場合があります。私はうまく機能する約300pxの設定幅を使用しますが、iframeの高さをコンテンツのサイズ(ブログ投稿)に動的にサイズします。ロード時に追加した後にiframeのサイズを変更します。

私はcontentWindow(子DOM要素を持たない)とcontentDocument(未定義)を無駄にしようとしました。

私は負荷に次の操作を行います。

var iframe = document.createElement('iframe'); 
iframe.setAttribute('id','postFrame'); 
iframe.setAttribute('frameborder','no'); 
iframe.setAttribute('scrolling','no'); 
iframe.setAttribute('onload','resizeFrame();'); 
iframe.setAttribute('width','300px'); 
iframe.setAttribute('src','http://espn.go.com/espn/print?id=7454651'); 
var container = document.getElementById('container'); 
container.appendChild(iframe); 


function resizeFrame(){ /* resize iframe based on content height*/ } 

はインラインフレーム内のコンテンツに基づいて、サイズはiframeの高さを再する方法はありますか?

* EDIT **

可能な回避策:

私は問題を支援するために、アクセス制御 - 許可 - 起源を使用することができることを望みはありますか? iframeに入っているページが自分のものか、PHPスクリプトのecho'dといいます。

+0

あなたは 'espn.go.com'を所有していないと仮定します。この場合、私は数ヶ月のうちにこの分野で多くの仕事をしました。これは、 'customer'と'サプライヤー'(あなたはそのうちの1人だが、espn.go.comはもう1人だ)。個人的に私に連絡すれば最高だと思うので、Skypeで話すことができます。 Skypeのユーザー名をここに残しておけば、あなたを追加して手伝ってくれるでしょう。 – ClarkeyBoy

+0

hmm私はスカイプを使用しないでください – mbuff24

答えて

1

次の関数を使ってiframeのサイズをコンテンツの高さに合わせます。それは(とのみ適切にIE8でテスト)のイントラネットアプリケーションのためだが、確かにドキュメントがドキュメントを見つけることができるはずロードされたらそれが欠けclue-

function sizeIframeToContent(id) { 
    // resize iframe to be the height of the content 
    try { 
     var frame = document.getElementById(id); 
     innerDoc = (frame.contentDocument) ? 
        frame.contentDocument : frame.contentWindow.document; 
     var objToResize = (frame.style) ? frame.style : frame; 
     objToResize.height = innerDoc.body.scrollHeight + 10 + 'px'; 
     //objToResize.width = innerDoc.body.scrollWidth + 10 + 'px'; 
    } 
    catch (err) { 
     console.log(err.message); 
    } 
} 

編集 explanation-提供することがあります動作します高さをiframeの高さとして使用できます。私はあなたが具体的に高さについて質問しているように、上記の関数の幅の部分をコメントしました。

+0

私はコンソールでこれを取得しません:未定義のプロパティ 'body'を読み取ることができません – mbuff24

+0

@ buffstar24も同様にChromeで取得しています...できることがわかります – davidsleeps

+0

そしてfirefoxで私はプロパティを取得するHTMLDocument.body – mbuff24

関連する問題