当用户在 iframe 中导航时,如何强制 iframe 的父页面自动滚动到顶部?



*请注意:跨域场景*

我有一个iframe,它没有滚动条,但比浏览器窗口高得多,所以垂直滚动是由浏览器的主垂直滚动条完成的。然而,这有一个令人不安的特点:当导航在向下滚动的状态下完成时,滚动不会重置为父级中的顶部。

当iframe中出现页面导航时,我想自动将此滚动重置为init-top状态。

提前谢谢。

如果您的iframe存在跨域问题(指向网站以外的其他地方),则不能:
错误:访问属性';的权限被拒绝;文档';

但如果没有,您可以使用此代码来完成。将此添加到页面中的脚本中:

var myframe = window.frames[0].window;
myframe.onscroll = function(){if(myframe.scrollY == myframe.scrollMaxY){window.scrollTo(0,0);}};
//Thanks Diodeus!

也可以通过getElementById或其他类似方式选择它,并给出对myframe变量的引用。当您在iframe中向下滚动,然后向上滚动整个文档时,这会触发一个事件。

您可以将onload事件挂接到iframe。这是在跨域场景中为数不多的钩子之一。

document.getElementById("some_iframe").onload = function (){ window.scrollTo(0,0); }

相关内容

  • 没有找到相关文章

最新更新