如何在iframe中提交后刷新iframe父页面?

时间:2009-12-07 15:25:18

标签: asp.net javascript html iframe

我在页面中有iframe,而这个iframe包含一个提交按钮,可以执行某些功能。

我想要的是:在iframe提交完成后,调用父页面进行刷新。

我知道如何更新它:

parent.location.reload();

但是在提交完毕后我不知道该怎么做。

4 个答案:

答案 0 :(得分:4)

在iframe上使用onload事件处理程序。如果在提交后触发,请执行top.location.reload ...

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

答案 1 :(得分: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 :(得分:2)

提交表单是Iframe中文档的最终操作。提交表单后,该页面已“提交”并且不再有效。如果您先刷新父级,则会丢失Iframe。您在Iframe中提交的那一刻,您将无法再与父母交谈。

你可以在这里做一些事情:

  • 在提交表单时定位PARENT,然后父母将在该页面上的新iframe中拥有您想要的任何内容。
  • 让iframe中的结果页面在结果页面上使用JavaScript重新加载父页。

答案 3 :(得分:2)

如果您只想刷新父页面的某些部分而不需要刷新整个页面,并且大多数时候都是这种情况,因为这种方法不会重新加载iframe本身,您只需调用子页面中的javascript函数。

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

指导您的资源位于:Refresh parent page partially from iframe

感谢。