Как обновить родительскую страницу 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
спасибо.