22

window が iframe の場合、jQuery の scrollTop は null を返します。iframe の scrollTop を取得する方法を理解できた人はいますか?

より詳しい情報:

私のスクリプトはiframe自体で実行されており、親ウィンドウは別のドメインにあるため、iframeのIDなどにアクセスできません

4

10 に答える 10

30

iframe 内で scrollTop を SET しようとしているときにこの質問を見つけました...正確にはあなたの質問ではありません (GET したかったのです)。

ページの一番上までスクロールしたい場合、これはiframe 内では機能しません:

$("html,body").scrollTop(0);

ただし、これは機能します。

document.getElementById("wrapper").scrollIntoView();

またはjQueryと同等:

 $("#wrapper")[0].scrollIntoView();

このマークアップ (iframe 内に含まれる) の場合:

<html>
  <body>
    <div id="wrapper">
      <!-- lots of content -->
    </div>
  </body>
</html>
于 2010-10-19T03:44:42.090 に答える
25
$('#myIframe').contents().scrollTop()
于 2011-01-17T19:52:37.887 に答える
6

古き良きJavaScript:

scrollTop = document.getElementById(IFRAME_ID).contentWindow.document.body.scrollTop;
于 2010-11-09T04:11:04.700 に答える
0

またはこれを使用します

sample.showLoader = function() {
// show cursor wait
document.getElementsByTagName('body')[0].style.cursor = 'wait';
var loader = $('#statusloader');
// check if we're runnign within an iframe
var isIframe = top !== self;
if (isIframe) {
    var topPos = top.pageYOffset + 300;
    // show up loader in middle of the screen
    loader.show().css({
        top : topPos,
        left : '50%'
    });
} else {
    // show up loader in middle of the screen
    loader.show().css({
        top : '50%',
        left : '50%'
    });
}
};
于 2013-06-17T10:17:47.773 に答える