我试图在运行时从后面的代码中设置 iframe 的 HTML。
在我的 aspx 页面中,我有:
<asp:Button ID="btnChange" runat="server" Text="Change iframe content"
onclick="btnChange_Click" />
<br />
<iframe id="myIframe" runat="server" />
在后面的代码中:
protected void btnChange_Click(object sender, EventArgs e)
{
myIframe.InnerHtml = "<h1>Contents Changed</h1>";
}
当我运行这个......它回发,但根本不会改变 myIframe 的内容......我做错了什么?
我需要这样做,因为我在我的结帐过程中实现了 3D 安全.. 基本上:
1) 客户输入信用卡详细信息 2) 提交表格,与支付网关核对是否需要 3d 安全。如果是这样,则会为银行安全位置生成 url 以输入信息 3) 我创建一个对此 url 的 POST 请求,其中包含一个长安全令牌和一些其他信息。我得到了从这个 POST 请求返回的 HTML,并且需要在 iFrame 中显示它。
这是文档所说的内容:
<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>