2009-12-07 4 views
8

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

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

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

parent.location.reload(); 

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

ответ

4

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

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

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

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

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

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

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

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

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

Ресурс, который проведет вас здесь: Refresh parent page partially from iframe

Спасибо.

Смежные вопросы