背後にあるコードからIFrameのinnerHTMLプロパティを変更します
質問
私は背後にあるコードから、実行時にインラインフレームの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)顧客がクレジットカード情報を入力します 3Dセキュアが必要な場合2)フォームは、支払ゲートウェイと、小切手を提出しています。もしそうなら、urlは、銀行情報を入力するための安全な場所のために生成されます 3)私は長いセキュリティトークンが含まれています。このURLにPOSTリクエスト、および情報のいくつかの他のビットを作成します。私は、HTMLのホールドは、このPOSTリクエストから返さ取得し、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>
解決
あなたはこれを試すことができます:
protected void btnChange_Click(object sender, EventArgs e)
{
myIframe.Attributes["src"] = "pathtofilewith.html"
}
または多分これはあまりにも動作します:
protected void btnChange_Click(object sender, EventArgs e)
{
myIframe.Attributes["innerHTML"] = "htmlgoeshere"
}
他のヒント
のiFrameにはinnerHTMLの属性がありません。ただし、HTML 5.0以降、新しいの srcdoc の属性があります。 http://www.w3schools.com/tags/tag_iframe.aspする
値:のHTML_code の
説明:
で表示するページのHTMLコンテンツを指定します。
あなたはこのように使用することができ、どのます:
protected void btnChange_Click(object sender, EventArgs e)
{
myIframe.Attributes["srcdoc"] = "<h1>Contents Changed</h1>";
}
あなたは、iframeのinnerHTMLプロパティを変更することはできません。それは全くのinnerHTMLプロパティを持っていません。 RegisterStartupScriptに試してみて、それが窓であるため、インラインフレームの内容を変更するためのdocument.writeを使用します。
ちなみに、私は、HTMLタグが、このためのより良い場所だと思います。
<asp:Button ID="btnChange" runat="server" Text="Change iframe content" onclick="btnChange_Click" />
<br />
<asp:Literal id="myIframe" runat="server" />
in the code behind:
protected void btnChange_Click(object sender, EventArgs e){
myIframe.Text = "<h1>Contents Changed</h1>";
}
何をする必要が空であり、それは応答して、自身の身体の荷重それを取得別々のaspxページを作成し、他の言葉で自分自身を置き換え、
のようなものですmypage.aspxます:
<%@ Page contentType="text/html" %>
//... using your namespace that contains the required functionality
<% Response.Write(MyObject.CreateBody()) %>
その後、ウルのiframe内でそのページを置く...
<iframe src="mypage.aspx" ... />
簡単に言えば、IFRAMEは、クライアントサイドウィンドウは、サーバー側からのオブジェクトとしての体を参照することができないで、それはまだロードされてhasnt!
OR ...あなたは[保存して閉じる...そのファイルは常にあなたのiframeによって参照され、HTMLファイルを開く応答をダンプすることができます。テキストストリームオブジェクト、またはFileSystemObjectオブジェクトを使用するか、のような...
PS。私はそれのいずれかを試していません。