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

标签 javascript cross-domain

* 请注意:跨域场景*

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

我想在 iframe 中发生页面导航时自动将此滚动重置为初始顶部状态。

提前致谢。

最佳答案

如果您的 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 中向下滚动然后向上滚动整个文档时,这会触发一个事件。

关于javascript - 当用户在 iframe 中导航时,如何强制 iframe 的父页面自动滚动到顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26075839/

相关文章:

javascript - 我可以使用原型(prototype) 'extend' jQuery 对象吗?

javascript - 如何遍历字符串并替换除最后一个句点以外的所有句点?

javascript - 跨域或 CDN 加载 Mustache.js/Handlebars.js 模板的最佳实践

jquery - 通过 jquery .ajax 将发布数据提交到另一个域

javascript - Croppie 有时会得到 No 'Acces-Control-Allow-Origin',有时不会

javascript - 在触摸滚动条中居中文本

javascript - 对于稍后通过脚本添加到 DOM 的元素,不会调用事件监听器

JavaScript 和第三方 cookie

javascript - iframe 如何访问其父 DOM?

javascript - Angular $scope 变量在通过 $rootScope.$on 调用后未更新