2009-01-29 141 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'