*请注意:跨域场景*如何强制iframe的父页面在用户在iframe中导航时自动滚动到顶部?
我比浏览器窗口,它具有没有滚动条的iframe,但更加高,所以垂直滚动是由浏览器的主要垂直滚动条来完成。然而,这有一个令人不安的特征:当导航在向下滚动状态下完成时,滚动不会重置到父级的顶部。
我想在iframe中发生页面导航时自动将此滚动重置为init top状态。
在此先感谢。
*请注意:跨域场景*如何强制iframe的父页面在用户在iframe中导航时自动滚动到顶部?
我比浏览器窗口,它具有没有滚动条的iframe,但更加高,所以垂直滚动是由浏览器的主要垂直滚动条来完成。然而,这有一个令人不安的特征:当导航在向下滚动状态下完成时,滚动不会重置到父级的顶部。
我想在iframe中发生页面导航时自动将此滚动重置为init top状态。
在此先感谢。
您可以将一个onload
事件挂钩到iframe。它是跨域场景中可以获得的少数几个钩子之一。
document.getElementById("some_iframe").onload = function(){ window.scrollTo(0,0); }
如果您的IFRAME有一个跨域问题(指向比你的网站之外的其他地方),你不能:
error : Permission denied to access property 'document'
但如果没有,你可以使用此代码做到这一点。此页面添加到脚本:
var myframe = window.frames[0].window;
myframe.onscroll = function(){if(myframe.scrollY == myframe.scrollMaxY){window.scrollTo(0,0);}};
//Thanks Diodeus!
或者您也可以通过getElementById
或其他同类者选择它,并给予参考myframe
变量。当您在iframe中向下滚动,然后向上滚动整个文档时,会触发事件。
不幸的是,我无法访问父页面。它是另一个提供商在其他领域的其他应用程序 – 2014-09-29 14:13:36
啊。我以为你在管理父页面,而不是iframe。 – 2014-09-29 14:30:06