Как обновить родительскую страницу iframe после отправки в iframe?

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

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

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

parent.location.reload();

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

4 ответов


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

// In parent
window.onload = function() {
  document.getElementById("MY_IFRAME").onload = function() {
    top.location.reload();
  }
}

я решил эту проблему, добавив эту строку кода в код после завершения всех моих методов:

    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 не отправлять данные дважды на сервер, поскольку я хочу новую свежую загрузку страницы.


Отправка формы-это окончательное действие над документом в Iframe. После отправки формы эта страница была "отправлена" и больше не активна. Если вы сначала обновите родителя, Вы потеряете Iframe. В тот момент, когда вы отправляете в Iframe, вы больше не можете разговаривать с родителем.

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

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

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

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

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

спасибо.