如何在iframe中回发aspx页面?

时间:2011-04-30 20:45:17

标签: javascript asp.net html iframe

我的主iframe页面中有一个aspx,此iframe也有一个aspx页面。 iframe的页面有一些控件,主aspx页面上有一个提交按钮。现在,我想使用postbackjavascript iframe的页面上提交按钮的点击事件。因此,主页面保持静态,iframe的页面为postback
更新
谢谢@Kevin Babcock和@Bala R.
假设我需要执行一个按钮(在iframe中)通过主页单击事件

5 个答案:

答案 0 :(得分:4)

从javascript您可以尝试类似

的内容
document.frames["iframeid"].document.forms[0].submit();

答案 1 :(得分:3)

在父页面(Parent.aspx页面)中包含一个iframe页面(FrameChild.aspx页面),当您需要我们需要调用iframe按钮事件的方法时,我们必须按照这样的方式进行操作。

在父页面中,javascript方法调用如下:

<script type="text/javascript" language="javascript">
    function functionName()    {
        document.getElementById(iframeID).contentWindow.MyIFrameFunction(); 
    }

iframeID是帧ID,MyIFrameFunction()是FrameChild.aspx中javascript函数的名称,并通过父页面的按钮调用functionName()方法,该方法调用子元素的下面MyIFrameFunction()。 js功能。

在子页面(FrameChild.aspx)中应该包含一个函数。

<script type="text/javascript" language="javascript">
    function MyIFrameFunction() {            
        __doPostBack('btnRenew', 'passparameter');
    }
</script>

假设FrameChild.aspx中有一个按钮。

<asp:Button ID="btnRenew" runat="server" OnClick="btnRenew_Click" />

FrameChild.aspx页面后面的代码。

protected void Page_Load(object sender, System.EventArgs e)
{       
    string target = Request["__EVENTTARGET"]; //btnRenew
    string paremeter = Request["__EVENTARGUMENT"];  //passparameter
    if (!string.IsNullOrEmpty(target) && !string.IsNullOrEmpty(arg))
    {
        btnRenew_Click(sender, e);
    }
}

public void btnRenew_Click(object sender, EventArgs e) { }

以上代码适用于我。

答案 2 :(得分:1)

尝试以下方法:

window.frames[0].document.forms[0].submit();

这假定如下:

  • 您的网页上没有多个iframe(如果是,您需要在框架数组中引用正确的iframe)
  • iframe中没有多个表单(如果是,则需要在表单数组中引用正确的表单)
  • 您在iframe中加载的页面是从同一个域,端口和协议加载的(否则,由于浏览器安全性,您可能无法访问iframe内容)

答案 3 :(得分:0)

在页面上添加一个按钮,并将其命名为ID =“ btn_ParentSubmit ”。
假设您将iframe ID命名为“ iframeTest ” 在 Page_Load()中添加以下内容:

if (IsPostBack == false)
{
    //Either place the button in an UpdatePanel (so it won't reload the iFrame) -OR- add "return false;" to prevent the post-back and let the iFrame submit itself. - 09/25/2012 - MCR.
    btn_ParentSubmit.OnClientClick = "javascript:document.getElementById('" + iframeTest.ClientID + "').contentDocument.forms[0].submit(); return false;"
}

答案 4 :(得分:0)

支持每个浏览器

 window.frames[0].document.getElementById('btnSave').click();  

 window.frames['iframename'].document.getElementById('btnSave').click();