使用JavaScript滚动iframe上下移动

10

是否可以使用键盘或JavaScript从父窗口滚动iframe窗口? iframe内容来自于与父窗口不同的另一个域。

1个回答

20

由于iframe内容来自另一个域,出于安全原因,您将无法更改其DOM。

尽管在激活时可以使用箭头键滚动它。至少我在Chrome和Firefox中可以运行。

如果您想要能够从JavaScript滚动它,我建议采用以下方法(假设您知道iframe内容和您的iframe的宽度和高度)。 基本上让DOM中的一个div负责滚动。

<a href="#" id="scroll">Scroll to (400,400)!</a><br />

<div id="google" style="width: 300px; height: 200px; overflow: auto;">
   <iframe width="800" height="600" src="http://www.google.com/" scrolling="no">
   </iframe>
</div>

<script type="text/javascript">
$("#scroll").click(function()
{
  $("#google").scrollTop(400).scrollLeft(400);
  return false;
});
</script>

为了使div的滚动更加流畅,您可以尝试来自这篇文章中的代码。


那么,我们有办法找出iframe内部网站的高度吗?感谢您的回复。非常感激 :) - Mickey Cheong
据我所知,可以参考http://www.webmasterworld.com/forum91/1373.htm或http://www.highdots.com/forums/javascript/calculate-height-iframe-problem-asp-53776.html。 - Martin Nycander
1
@Mickey。在iframe中无法获取第三方网页的高度。请参阅我的答案来查看获取外部URL的iframe高度问题的解释。 - Day

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接