2008-09-12 12 views
8

私は、私たちの会社CMSに埋め込みたいアプリケーションがあります。それを行う唯一の方法は(私は言われました)、それをにロードすることです。<iframe> - 参照ページの高さ全体を表示するにはどうすればよいですか?

Easy:just set heightおよびwidth100%!それ以外は動作しません。

は私が0frameborderを設定して知りましたので、それは、少なくともは、サイトの一部のようなに見えますが、私はの内側に出回っ1を持っているページを醜いスクロールバーを持って希望しません。

これを行うにはどんなトリックがありますか?

EDIT:私は多少私の質問を明確にする必要があると思う:

  • CMSは、当社のウェブサイト全体のために自分のアプリケーション
  • CMSを使用して作成
  • ほとんどのページを綿毛やものを表示する会社私はの
  • 私はiframeの上のコントロールを持っていないので、どのような解決策も参照ページから動作する必要があります(タグの属性)
  • CMSはフッターを表示するので、100万個の画素と高さを設定することは良いアイデアではありません

は、私が参照されたページから親ページのDOMにアクセスすることはできますか?これは役立つかもしれないが、私は何人かの人々がこれを可能にしたくない場合があります見ることができます...

この手法は、複数のソースから(gleanedを動作するようだが、受け入れ答えからlinkに触発さ:

で親ドキュメント:子で

<iframe id="MyIFRAME" name="MyIFRAME" 
    src="http://localhost/child.html" 
    scrolling="auto" width="100%" frameborder="0"> 
    no iframes supported... 
</iframe> 

:ところで

<!-- ... --> 
<body> 
<script type="text/javascript"> 
    function resizeIframe() { 

     var docHeight; 
     if (typeof document.height != 'undefined') { 
      docHeight = document.height; 
     } 
     else if (document.compatMode && document.compatMode != 'BackCompat') { 
      docHeight = document.documentElement.scrollHeight; 
     } 
     else if (document.body 
      && typeof document.body.scrollHeight != 'undefined') { 
      docHeight = document.body.scrollHeight; 
     } 

     // magic number: suppress generation of scrollbars... 
     docHeight += 20; 

     parent.document.getElementById('MyIFRAME').style.height = docHeight + "px";  
    } 
    parent.document.getElementById('MyIFRAME').onload = resizeIframe; 
    parent.window.onresize = resizeIframe; 
</script>    
</body> 

これは、セキュリティ上の理由から、JavaScriptでの制限により、親と子が同じドメインにある場合にのみ機能します。

答えて

0

私はここで何かが欠けているが、通常はスクロールバーを取り除くiframeタグの属性としてscrolling=noを追加することがあります。

+1

はい、ただし、埋め込みページがiframeの内側に収まらない場合は切り捨てられます。 –

2

iframeが含まれているページと同じサーバーでホストされている場合は、access it via javascriptとすることができます。

setting the iframe to the full height of the contentsにはさまざまな方法がありますが、それぞれの成功度には違いがあります。この問題のGoogleでは、これは非常に一般的なものであり、実際のサイズに合ったコンセンサスソリューションはありません恐れ!

this scriptがこのトリックを行うと報告していますが、特定のケースではsome modification(iframeと親ページが同じドメインにあると仮定します)が必要な場合があります。

関連する問題