Javascript 如何从iframe刷新父窗口?

Javascript 如何从iframe刷新父窗口?,javascript,iframe,Javascript,Iframe,我有一个父页面和一个iframe。父级中的链接控制在iframe中加载的页面。我要做的是在加载iframe时刷新父页面。 我在iframe中有这样的内容: RefreshParent(){ parent.location.reload(); } <body onload="RefreshParent();"> RefreshParent(){ reload(); } 但是,上面的代码会刷新整个父页面以及其中的iframe,而iframe会重新加载父页面并进入无限循环。如

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

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

<body onload="RefreshParent();">
RefreshParent(){
reload();
}

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

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


您可以做的是更新父窗口的内容,但这可能是一个相当大的工作量(使用jQuery或原型框架会使这更容易)。

您不能告诉父窗口刷新和排除其自身页面的任何部分,包括其中包含的iframe。不过,您可以使用AJAX技术来实现这一点。

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

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

如果您不希望使用ajax,并且布局允许,一种解决方案是将父帧的内容放置在iframe本身中。然后,在加载iframe时,您可以告诉父页面刷新包含“父内容”的iframe。如果您的“父”iframe是无边界的,并且没有滚动,那么这对用户来说是完全透明的


您可以将此技术推广到父内容的两个iFrame,它的实现比ajax更快、更简单,除此之外,您还可以咬紧牙关实现ajax解决方案。

您也不需要使用ajax技术。您只需从父页面的iframe中包含的页面调用父页面中的javascript函数。这样,您可以轻松地在父页面上执行操作。说明了如何


希望这能有所帮助。

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

window.parent.location = window.parent.location + '?parent-updated=true'
parent.location.reload()不适合我。它在控制台上显示“权限被拒绝”错误。还有其他想法吗?