从父页面滚动iframe

时间:2013-05-29 19:48:14

标签: javascript jquery

我创建了两个网页,一个包含iframe中的另一个网页。我想通过javascript从父页面滚动嵌入页面。

到目前为止我尝试过:

  1. $('#go').scrollTop(200);

  2. $('.footer').scrollTop(200);

  3. var frame = document.getElementById('go');
    frame.contentWindow.scrollTo(0, 200);

  4. 这些都没有奏效

    父网页html:

    <html>
    <body>
    .
    .
    .
    <div class="footer">
            <iframe id="go" src="go.html"></iframe>
        </div>
         </body>
    </html>
    

    这两个网页都是计算机上的本地文件,而我使用的是带有“--allow-file-access-from-files”标志的Google Chrome。

    如何将iframe滚动到某个位置?

2 个答案:

答案 0 :(得分:7)

这有效:

document.getElementById("go").contentWindow.setTimeout("this.scrollTo(0, 200);",1);

更新。卫生署。仅适用于IE,但我认为那里有一些东西。

更新2 这普遍适用:

document.getElementById("go").onload = function () { this.contentWindow.scrollTo(0, 200) };

您必须等待iframe内容完成加载才能使scrollTo正常工作。

答案 1 :(得分:3)

您可以使用window.postMessage从父框架向iframe发送消息,告诉它滚动。这会让您在父框架中设置postMessage脚本,在iframe中设置receiveMessage脚本。这是实际滚动iframe的receiveMessage代码。

我已成功使用此polyfill:http://benalman.com/projects/jquery-postmessage-plugin/