12

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

到目前为止我已经尝试过:

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

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

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

这些都没有奏效

父网页html:

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

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

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

4

2 回答 2

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 工作。

于 2013-05-29T20:12:51.957 回答
3

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

我已经非常成功地使用了这个 polyfill:http: //benalman.com/projects/jquery-postmessage-plugin/

于 2013-05-29T19:58:05.037 回答