Frage

Ich versuche, die HTML eines Iframes zur Laufzeit festgelegt, aus dem Code hinter sich.

In meiner aspx Seite ich habe:

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

<br />

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

im Code hinter:

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

Wenn ich diese laufen .... es postet zurück, aber nicht den Inhalt myIframe überhaupt ändern ... Was mache ich falsch ??


Ich muss dies tun, weil im Implementierung 3D in meine Kasse sichern .. Grundsätzlich gilt:

1) Kunde gibt Kreditkartendaten 2) Form vorgelegt wird, prüft mit Payment-Gateway, wenn 3D Secure ist nicht erforderlich. wenn dies der Fall ist, URL für die Banken sicheren Ort erzeugten Informationen einzugeben 3) mache ich eigentlich eine POST-Anforderung an diese URL, die eine lange Sicherheits-Token enthält, und ein paar andere Informationen. i habhaft der HTML-Code aus dieser POST-Anforderung zurückgegeben, und muß es in einem iFrame angezeigt werden soll.

Heres, was die Dokumentation sagt zu tun:

<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>
War es hilfreich?

Lösung

Sie können versuchen, diese:

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

oder vielleicht wird diese Arbeit auch:

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

Andere Tipps

Es gibt kein innerHTML- Attribut für ein iFrame. Da jedoch HTML 5.0, gibt es ein neues srcdoc Attribut. http://www.w3schools.com/tags/tag_iframe.asp

  

Wert: HTML_code

     

Beschreibung: Gibt den HTML-Inhalt der Seite zu zeigen, in dem