Pregunta

Estoy tratando de establecer el código HTML de un marco flotante en tiempo de ejecución, a partir del código atrás.

En mi página aspx tengo:

<asp:Button ID="btnChange" runat="server" Text="Change iframe content" 
onclick="btnChange_Click" />

<br />

<iframe id="myIframe" runat="server" />

en el código detrás:

protected void btnChange_Click(object sender, EventArgs e)
{
    myIframe.InnerHtml = "<h1>Contents Changed</h1>";
}

Cuando corro esto .... que publica la espalda, pero no cambia el contenido myIframe en todos los ... ¿Qué estoy haciendo mal ??


Necesito hacer esto porque im 3D implementación segura en mi proceso de pago .. básicamente:

1) cliente entra en detalles de la tarjeta de crédito 2) formulario se envía, cheques con pasarela de pago si se requiere 3d seguro. si es así, se genera url para los bancos ubicación segura para introducir información 3) i crear una solicitud POST a esta URL, que contiene un token de seguridad de largo, y otros pocos bits de información. i controlar la HTML volvió de esta solicitud POST, y la necesidad de mostrarlo en un iFrame.

Aquí está lo que dice la documentación para hacer:

<html>
<head>
<title>Please Authenticate</title>
</head>
<body onload="OnLoadEvent();">
<form name="downloadForm" action="https://mybank.com/vbyv/verify" method="POST">
<input type="hidden" name="PaReq" value="AAABBBBCCCCHHHHHH=">
<input type="hidden" name="TermUrl" value="https:// www. MyWidgits.Com/next.cgi">
<input type="hidden" name="MD" value="200304012012a">
</form>

<script language="Javascript"> <!-- function OnLoadEvent(){ document.downloadForm.target = "ACSframe"; document.downloadForm.submit(); } //--> </script>

<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE -->
<iframe src="blank.htm" name="ACSframe" width="390" height="450" frameborder="0">
</iframe>
<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE -->
</body>
</html>
¿Fue útil?

Solución

Puede intentar esto:

protected void btnChange_Click(object sender, EventArgs e)
{
   myIframe.Attributes["src"] = "pathtofilewith.html"
}

o tal vez esto funcionará también:

protected void btnChange_Click(object sender, EventArgs e)
{
   myIframe.Attributes["innerHTML"] = "htmlgoeshere"
}

Otros consejos

No hay ningún atributo innerHTML de un iFrame. Sin embargo, desde HTML 5.0, hay un nuevo srcdoc atributo. http://www.w3schools.com/tags/tag_iframe.asp

  

Valor: HTML_code

     

Descripción: Especifica el contenido HTML de la página para mostrar en la etiqueta