如何从iframe刷新父窗口?

时间:2009-01-29 17:22:24

标签: javascript iframe

我在该页面中有一个父页面和一个iframe。父级中的链接控制在​​iframe中加载的页面。我想要做的是在加载iframe时刷新父页面。 我在iframe中有这个:

RefreshParent(){
    parent.location.reload();
}

<body onload="RefreshParent();">

但是,上面的代码会刷新整个父页面以及其中的iframe,而iframe会重新加载父页面并进入无限循环。

6 个答案:

答案 0 :(得分:9)

如果不重新加载iframe,则无法刷新父页面。

你可以做的是使用AJAX来更新父母的内容,但这可能是相当多的工作(使用jQuery或Prototype框架会使这更容易)。

答案 1 :(得分:2)

您也不需要使用ajax技术。您只需从父页面的iframe中包含的页面调用父页面中的javascript函数即可。这样,您可以轻松地在父页面上执行操作。 How to refresh parent page partially from page in iframe without affecting the iframe说明了如何。

希望这有帮助。

答案 2 :(得分:1)

您不能告诉父窗口刷新并排除其自己页面的任何部分,包括其中包含的iframe。你可以使用AJAX技术来做到这一点。

答案 3 :(得分:1)

只要您在同一个域中,您就可以使用以下内容:

window.parent.location = window.parent.location + '?parent-updated=true'

答案 4 :(得分:0)

您需要让iframe成为“常规”框架,以便在刷新页面的其他部分时保留它。由于iframe在技术上是父级的一部分(毕竟它是一个内联框架),刷新父级也会重新加载iframe内容。

答案 5 :(得分:0)

取决于您的布局,但正如其他帖子所观察到的那样,如果不刷新iframe本身就无法刷新父框架,因为它是页面的一部分。

如果您不想使用ajax和布局许可,一种解决方案是将父框架的内容放在iframe中。然后,您可以告诉父页面在iframe加载时刷新包含“父内容”的iframe。如果你的'父'iframe没有边框且没有滚动,那么这对用户来说都是透明的。

您可以将此技术推送到父内容的几个iframe,并且它可以比ajax更快更简单地实现,除此之外您还可以咬住子弹并实施ajax解决方案。