Как обновить родительскую страницу iframe после отправки в iframe? - PullRequest
7 голосов
/ 07 декабря 2009

У меня есть iframe внутри страницы, и этот iframe содержит кнопку отправки, которая будет выполнять некоторую функцию.

То, что я хочу: после завершения отправки iframe позвоните на родительскую страницу для обновления.

я знаю, как его обновить:

parent.location.reload();

Но я не знаю, как это сделать после завершения отправки.

Ответы [ 4 ]

4 голосов
/ 07 декабря 2009

Используйте обработчик событий onload в вашем iframe. Когда он сработает после отправки, выполните ваши top.location.reload ...

// In parent
window.onload = function() {
  document.getElementById("MY_IFRAME").onload = function() {
    top.location.reload();
  }
}
4 голосов
/ 07 декабря 2009

Я решил эту проблему, добавив эту строку кода в код после того, как все мои методы закончили:

    ScriptManager.RegisterStartupScript(this, typeof(string), "script", 
"<script type=text/javascript>
parent.location.href = parent.location.href;</script>", false);

И причина, по которой я не написал parent.location.reload() и не написал parent.location.href = parent.location.href, состоит в том, чтобы не отправлять данные дважды на сервер, так как я хочу загрузить новую страницу.

2 голосов
/ 19 июля 2011

Если вы хотите обновить только некоторые части родительской страницы и вам не нужно обновлять всю страницу, и в большинстве случаев это так, поскольку этот подход не перезагружает сам iframe, вы можете просто вызвать функция JavaScript с дочерней страницы.

window.parent.myFunctionInParent('my argument');

Ресурс, который ведет вас, находится здесь: Частично обновить родительскую страницу из iframe

Спасибо.

2 голосов
/ 07 декабря 2009

Отправка формы - это ЗАКЛЮЧИТЕЛЬНОЕ действие над документом в Iframe. После отправки формы эта страница была «отправлена» и больше не активна. Если вы обновите родительский элемент первым, вы потеряете Iframe. В тот момент, когда вы отправляете в Iframe, вы больше не можете разговаривать с родителем.

Вы можете сделать одну из нескольких вещей здесь:

  • Когда вы отправляете форму, нацеливайтесь на РОДИТЕЛЯ, тогда родитель будет иметь все, что вы хотите, в НОВОМ iframe на этой странице.
  • Пусть полученная страница в iframe перезагрузит родительский элемент с помощью JavaScript на странице результатов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...