从 iframe 跳转到父级顶部 - 跨域

Posted

技术标签:

【中文标题】从 iframe 跳转到父级顶部 - 跨域【英文标题】:Jump to top of parent from iframe - cross domain 【发布时间】:2013-04-01 12:37:26 【问题描述】:

我有一个有点长的 iframe,一旦按下提交按钮,我想跳到页面顶部(我使用的是 ASP.NET,一旦表单完成,iframe 中就会显示一个新面板提交)。问题是我的 iframe 与我的父页面位于不同的域中。到目前为止,这是我所拥有的:

在 iframe 中:

<script>
function scrollWindow()
        window.top.scrollTo(0,0);

</script>
<input type="submit" onclick="scrollWindow();" value="Submit Request">

如果父级和 iframe 在同一个域中,但不是跨域,则此方法有效。

【问题讨论】:

【参考方案1】:

如果 iframe 中的页面在您按下提交时发生变化,您应该能够使用 iframe 的“onload”事件来触发滚动。

这是一个 hack,你应该为此感到难过。不过它应该可以工作。

【讨论】:

我是 asp.net 的新手,但我认为它不会重新加载,我认为它更像是在触发按钮提交事件时显示的新面板。 如果您可以从内部向 iframe 的 URL 添加井号标签,您应该能够使用忙等待从外部监视 iframe 的 URL。 onLoad 会更干净,因为它会被触发一次。 不会重新加载整个页面吗?我希望感谢面板在提交后显示(在同一个 iframe 文档中)。如果我重新加载页面,整个页面不会重新加载并呈现原始表单吗?

以上是关于从 iframe 跳转到父级顶部 - 跨域的主要内容,如果未能解决你的问题,请参考以下文章

layui弹窗 iframe嵌套页面内的弹窗如何覆盖到父级页面

从子级到父级的跨站点 iframe postMessage

iframe页面间通信

使用window.postMessage进行iframe跨域数据通信

如何使用屏障将视图约束到父级顶部

小程序 - 子级页面返回父级,并把子级参数带回父级