1

私は2つのiframeを持っています:

  1. ナビゲーション
  2. 動的コンテンツ

JavaScript を使用してコンテンツのサイズを変更しています:

function autoResize(id) {
    var newheight;
    newheight = document.getElementById(id).contentWindow.document.body.scrollHeight;
    document.getElementById(id).height = (newheight) + 'px';
};

htmlは次のとおりです。

<iframe src="navigation.jsp" id="leftFrame" name="leftFrame" onload="autoResize('leftFrame');" frameborder="0" scrolling="auto" width="200" style="height: 100%;"></iframe>
<iframe src="" id="mainFrame" name="mainFrame" onload="autoResize('mainFrame');" frameborder="0" scrolling="no" width="200" style="height: 100%;"></iframe>

動的ページには展開可能なコンテンツがいくつかありますが、クリックしてコンテンツ ページを展開すると、そのコンテンツが非表示になります。(mainFrame の場合は scrollbar="no" )

2 つのスクロールバー (つまり、メインフレームとブラウザーのスクロールバー) が表示されるため、メイン フレームのスクロールバーを有効にしたくありません。

4

2 に答える 2

1

iframeの代わりにjQueryのload()機能を使用してみることができます...

<body>
    <div id="nav"></div>
    <div id="content"></div>
</body>

<script>
    $(document).ready(function(){
        $('#nav').load('path/to/navigation');
        $('#content').load('path/to/dynamic content');
    });
</script>
于 2012-09-20T14:05:14.663 に答える
0

autoResizeフレームがロードされたときに一度だけ実行されます (jQuery の load() と同様)。フレームのコンテンツが変更されるたびに、フレームのサイズを変更する必要があります。つまり、フレーム内のサイズ変更イベントをトラップし、そこから呼び出します。autoResize

于 2012-09-20T14:29:33.097 に答える