我创建了两个网页,一个包含iframe中的另一个网页。我想通过javascript从父页面滚动嵌入页面。
到目前为止我尝试过:
$('#go').scrollTop(200);
$('.footer').scrollTop(200);
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滚动到某个位置?
答案 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/