代码之家  ›  专栏  ›  技术社区  ›  kamiar3001

使用Ajax在iframe中加载内容

  •  4
  • kamiar3001  · 技术社区  · 14 年前

    我有在服务器端工作的iframe:

    <iframe frameborder="0" runat="server" style="width: 100%; height: 700px; background-color: #bacad3;" id="I1" name="I1" src="Page.aspx"></iframe>
    

    我用以下代码动态地更改内容:

    protected void Button1_Click(object sender, EventArgs e)
    {       
       I1.Attributes["src"] = "Page.aspx";
    }
    

    我想用Ajax实现它,方法如下:

    1. 当用户单击iframe的外侧时,不要回发页面并更改iframe的SRC
    2. 我想在ProgressUpdatePanel中显示进度

    我提到过,我不想在iframe外调用ajax在iframe内加载页面,例如,页面中有一个按钮,由更新面板处理,它加载iframe内其他页面的内容。 有人能帮我吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   epascarello    14 年前

    使用onclientclick和mmke确保返回false以取消回发。

    window.frames["frameName"].src = "http://example.com";
    //or
    document.getElementById("iframeId").src = "http://example.com";
    

    如果使用runat=server,则可能需要使用客户端ID

    document.getElementById("<%= iframeId.ClientID %>").src = "http://example.com";
    
        2
  •  0
  •   kamiar3001    14 年前

    我发现使用这个方法是不可能的,你不能删除回发,它需要像谷歌邮件(gmail)这样的代理方法,当你点击收件箱时,它在右边类似于没有回发,但我们不能用这个方法实现。