2

ここにトリッキーなものがあります。.

ヘッダーがあり、iframe が含まれているだけの Web ページ (PageA と呼ばれる) があります。iframe PageB 内でページを呼び出しましょう。ページ B にはたくさんのサムネイルがありますが、たくさんあるので、すべてを表示するにはページ A を下にスクロールする必要があります。

ページ B の一番下までスクロールしてサムネイルをクリックすると、空白のページに移動するように見えます。実際には画像が表示されますが、画像だけのページは高さがはるかに短いため、スクロール バーは同じ位置に留まり、調整されません。写真を見るには、ページの一番上までスクロールする必要があります。

とにかく、iframe内にあるページのリンクをクリックすると、外側のページのスクロールバーが一番上に戻ります

ありがとうございます

4

3 に答える 3

6

@mek さまざまな方法を試した後、私が見つけた最良の解決策は次のとおりです。

外側のページで、スクローラー関数を定義します。

<script type="text/javascript">
  function gotop() {
    scroll(0,0);
  } 
</script>

次に、iframe を定義するときに、onload ハンドラーを設定します (iframe ソースが読み込まれるたびに、つまり iframe 内の新しいページに移動するたびに起動します)。

<iframe id="myframe" 
    onload="try { gotop() } catch (e) {}" 
    src="http://yourframesource"
    width="100%" height="999"
    scrolling="auto" marginwidth="0" marginheight="0" 
    frameborder="0" vspace="0" hspace="0" >
</iframe>

このアプローチの良い点は、iframe に含まれるページに変更を加える必要がないことです (また、iframe のコンテンツを別のドメインに配置することもできます。クロスサイト スクリプティングの問題はありません)。

于 2009-03-08T19:00:21.930 に答える
1

Javascript が最善の策です。scroll() メソッドを使用して、IFRAME の先頭までスクロールして戻ることができます。ボディ ロードに JavaScript ハンドラを追加して、サムネイルをクリックするたびに scroll() を呼び出す関数を呼び出して上にスクロールするようにします。

于 2008-11-06T16:55:58.377 に答える
0

呼び出していた PHP コード内から (親 ASP.NET ページ内から) iframe の一番上までスクロールする方法を見つけようとして、かなりの時間を費やしました。同じjavascriptを使用してiframeのonloadイベントで一番上までスクロールできるとは思いもしませんでした。ありがとう!

于 2009-06-14T05:34:29.523 に答える