2009-01-29 139 views
10

我有一个父页面和页面内的iframe。父级中的链接控制在​​iframe中加载的页面。我想要做的是在加载iframe时刷新父页面。 我在iframe得到这个:如何从iframe刷新父窗口?

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

<body onload="RefreshParent();"> 

但是,上面的代码与它里面的iframe这反过来又重新加载父页面,并进入一个无限循环沿着刷新整个父页面。

+0

`parent.location.reload();`是不是为我工作。它在控制台上显示“权限被拒绝”错误。任何其他想法? – 2016-11-22 20:42:21

回答

9

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

你可以做的是使用AJAX更新父的内容,但可能是工作了相当多的(使用jQuery或原型框架将使它更容易些)。

1

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

0

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

0

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

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

您可以将这种技术推到父级内容的几个iframe中,它可以比ajax更快更简单地实现,除此之外,您还可以咬紧牙关并实施ajax解决方案。

1

只要你上,你可以使用类似相同的域:

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